トップレベルについて間違った方法で考えているかもしれません。プロジェクトの一部としてトップレベルのディレクティブのコレクションを維持するための推奨される方法は何ですか?
OCaml ソース ファイルのようなトップレベル ディレクティブを含め#install_printer
て、プログラムのコンパイル時には無視され、実行時にはトップレベルで実行されるようにする方法はありますか?
理想的には、ディレクティブ自体が無視されたとしても、プログラムのコンパイル時にディレクティブの型をチェックしたいと思います。
type 'a with_infinity = Finite of 'a | Infinite
let print_int_with_infinity pp item =
(match item with
| Infinite -> Format.pp_print_string pp "Infinite"
| Finite i -> Format.pp_print_int pp i)
(* install printer cannot occur in this context *)
#install_printer print_int_with_infinity