src/HOL/Tools/Nitpick/nitpick_mono.ML
changeset 41012 e5a23ffb5524
parent 41011 5c2f16eae066
child 41013 117345744f44
equal deleted inserted replaced
41011:5c2f16eae066 41012:e5a23ffb5524
   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)