$

結局、

let (^$) f x = f x
let (<$) f x = f x

とかしてます。

Printf.printf "Typing.solve: eq => %s=%s\n" (Type.to_string (fst eq)) (Type.to_string (snd eq));

Printf.printf "Typing.solve: eq => %s=%s\n" <$ Type.to_string ^$ fst eq <$ Type.to_string ^$ snd eq;

とか書けて、かなり幸せな気分です。

って、………良く見るとコード長くなってるorz