ConstrexternTranslation of pattern, cases pattern, glob_constr and term into syntax trees for printing
type extern_env = Names.Id.Set.t * UnivNames.universe_bindersval extern_env : Environ.env -> Evd.evar_map -> extern_envval extern_cases_pattern : 
  Names.Id.Set.t ->
  'a Glob_term.cases_pattern_g ->
  Constrexpr.cases_pattern_exprval extern_glob_constr : 
  extern_env ->
  'a Glob_term.glob_constr_g ->
  Constrexpr.constr_exprval extern_glob_type : 
  ?impargs:Glob_term.binding_kind list ->
  extern_env ->
  'a Glob_term.glob_constr_g ->
  Constrexpr.constr_exprval extern_constr_pattern : 
  Termops.names_context ->
  Evd.evar_map ->
  Pattern.constr_pattern ->
  Constrexpr.constr_exprval extern_closed_glob : 
  ?goal_concl_style:bool ->
  ?inctx:bool ->
  ?scope:Notation_term.scope_name ->
  Environ.env ->
  Evd.evar_map ->
  Ltac_pretype.closed_glob_constr ->
  Constrexpr.constr_exprIf b=true in extern_constr b env c then the variables in the first level of quantification clashing with the variables in env are renamed. ~lax is for debug printing, when the constr might not be well typed in env, sigma
val extern_constr : 
  ?inctx:bool ->
  ?scope:Notation_term.scope_name ->
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  Constrexpr.constr_exprval extern_constr_in_scope : 
  ?inctx:bool ->
  Notation_term.scope_name ->
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  Constrexpr.constr_exprval extern_reference : 
  ?loc:Loc.t ->
  Names.Id.Set.t ->
  Names.GlobRef.t ->
  Libnames.qualidval extern_type : 
  ?goal_concl_style:bool ->
  Environ.env ->
  Evd.evar_map ->
  ?impargs:Glob_term.binding_kind list ->
  EConstr.types ->
  Constrexpr.constr_exprval extern_sort : Evd.evar_map -> Sorts.t -> Constrexpr.sort_exprval extern_rel_context : 
  EConstr.constr option ->
  Environ.env ->
  Evd.evar_map ->
  EConstr.rel_context ->
  Constrexpr.local_binder_expr listval set_extern_reference : 
  ( ?loc:Loc.t -> Names.Id.Set.t -> Names.GlobRef.t -> Libnames.qualid ) ->
  unitCustomization of the global_reference printer
val get_extern_reference : 
  unit ->
  ?loc:Loc.t ->
  Names.Id.Set.t ->
  Names.GlobRef.t ->
  Libnames.qualidWARNING: The following functions are evil due to side-effects. Think of the following case as used in the printer:
without_specific_symbols AbbrevRule kn (pr_glob_constr_env env) c
vs
without_specific_symbols AbbrevRule kn pr_glob_constr_env env c
which one is wrong? We should turn this kind of state into an explicit argument.
This suppresses printing of primitive tokens and notations
val empty_extern_env : extern_envProbably shouldn't be used