CoreML.of_string;; CoreML.of_string "\\x. x";; CoreML.of_string "\\x. x + x";; CoreML.of_string "\\x. + x x";; Typing.infer;; Typing.infer "hd (cons 0 nil)";; #install_printer Typing.toplevel_printer;; Typing.infer "hd (cons 0 nil)";; CoreML.of_string "\\x. x";; #install_printer CoreML.toplevel_printer;; CoreML.of_string "\\x. x";; Typing.pmu;; Typing.to_up;; Typing.to_up (pmu, CoreML.of_string "hd (cons 0 [])", Typing.tvar 0);; Typing.to_up (Typing.pmu, CoreML.of_string "hd (cons 0 [])", Typing.tvar 0);; let up = Typing.to_up (Typing.pmu, CoreML.of_string "hd (cons 0 [])", Typing.tvar 0);; Typing.unify;; Typing.unify up;; let s = Typing.unify up;; List.assoc 0 s;;