OCamlのオプション型は、何も返さない可能性のある関数がある場合に非常に役立ちます。しかし、これを多くの場所で使用するSomeと、ケースとNoneケースを常に処理するのが面倒になりmatch ... withます。
例えば、
let env2 = List.map (fun ((it,ie),v,t) ->
match t with
| Some t -> (v,t)
| None ->
begin
match it with
| Some it -> (v,it)
| None -> failwith "Cannot infer local vars"
end) ls_res in
オプションタイプを簡潔に分解する他の方法はありますか?