equal
deleted
inserted
replaced
788 | _ => true |
788 | _ => true |
789 val mtype_for = fresh_mtype_for_type mdata false |
789 val mtype_for = fresh_mtype_for_type mdata false |
790 fun do_all T (gamma, cset) = |
790 fun do_all T (gamma, cset) = |
791 let |
791 let |
792 val abs_M = mtype_for (domain_type (domain_type T)) |
792 val abs_M = mtype_for (domain_type (domain_type T)) |
|
793 val x = Unsynchronized.inc max_fresh |
793 val body_M = mtype_for (body_type T) |
794 val body_M = mtype_for (body_type T) |
794 in |
795 in |
795 (MFun (MFun (abs_M, A Gen, body_M), A Gen, body_M), |
796 (MFun (MFun (abs_M, V x, body_M), A Gen, body_M), |
796 (gamma, cset |> add_mtype_is_complete [] abs_M)) |
797 (gamma, cset |> add_mtype_is_complete [(x, (Plus, Tru))] abs_M)) |
797 end |
798 end |
798 fun do_equals T (gamma, cset) = |
799 fun do_equals T (gamma, cset) = |
799 let |
800 let |
800 val M = mtype_for (domain_type T) |
801 val M = mtype_for (domain_type T) |
801 val aa = V (Unsynchronized.inc max_fresh) |
802 val aa = V (Unsynchronized.inc max_fresh) |