fact: Definition tmExtractConstr' (def : option ident) {A : Type} (a : A) := s <- (tmEval cbv a >>= tmQuote) ;; t <- (tmEval hnf A >>= tmQuote) ;; match s with | Ast.tApp (Ast.tConstruct (mkInd n _) i _) _ => extract_constr a n i t def | Ast.tConstruct (mkInd n _) i _ => extract_constr a n i t def | _ => tmFail "this is not a constructor" end.
imports: Ascii String Undecidability.L(Util.L_facts) MetaCoq(Template.All Template.Checker) Undecidability.Shared.Libs.PSL.Base MetaCoq.Utils.bytestring