fact: Definition get_constrs := mfix1 fill (T : Type) : M (mlist dyn) := mmatch T return M (mlist dyn) with | [? A B] A -> B => fill B | [? A (P:A->Type)] forall x, P x => M.nu (FreshFrom T) mNone (fun x=> fill (P x) ) | _ => '(mkInd_dyn _ _ _ l) <- M.constrs T; M.ret l end%MC.
imports: Coq.Strings.String Mtac2(Datatypes List Mtac2)