DetypingIf true, contract branches with same r.h.s. and same matching variables in a disjunctive pattern
If this flag is true and the last non unique clause of a "match" is a variable-free disjunctive pattern, turn it into a catch-call case
val subst_cases_pattern : 
  Mod_subst.substitution ->
  Glob_term.cases_pattern ->
  Glob_term.cases_patternval subst_glob_constr : 
  Environ.env ->
  Mod_subst.substitution ->
  Glob_term.glob_constr ->
  Glob_term.glob_constrval factorize_eqns : 
  'a Glob_term.cases_clauses_g ->
  'a Glob_term.disjunctive_cases_clauses_gdetype isgoal avoid ctx c turns a closed c, into a glob_constr de Bruijn indexes are turned to bound names, avoiding names in avoid isgoal tells if naming must avoid global-level synonyms as intro does ctx gives the names of the free variables
val detype : 
  'a delay ->
  ?isgoal:bool ->
  Names.Id.Set.t ->
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  'a Glob_term.glob_constr_gval detype_sort : Evd.evar_map -> Sorts.t -> Glob_term.glob_sortval detype_rel_context : 
  'a delay ->
  EConstr.constr option ->
  Names.Id.Set.t ->
  (Termops.names_context * Environ.env) ->
  Evd.evar_map ->
  EConstr.rel_context ->
  'a Glob_term.glob_decl_g listval detype_closed_glob : 
  ?isgoal:bool ->
  Names.Id.Set.t ->
  Environ.env ->
  Evd.evar_map ->
  Ltac_pretype.closed_glob_constr ->
  Glob_term.glob_constrval lookup_name_as_displayed : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  Names.Id.t ->
  int optionlook for the index of a named var or a nondep var as it is renamed
val lookup_index_as_renamed : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  int ->
  int optionval subst_genarg_hook : 
  ( Mod_subst.substitution ->
    Genarg.glob_generic_argument ->
    Genarg.glob_generic_argument )
    Hook.tmodule PrintingInductiveMake (Test : sig ... end) : sig ... end