Constrextern
Translation of pattern, cases pattern, glob_constr and term into syntax trees for printing
type extern_env = Names.Id.Set.t * UnivNames.universe_binders
val extern_env : Environ.env -> Evd.evar_map -> extern_env
val extern_cases_pattern :
Names.Id.Set.t ->
'a Glob_term.cases_pattern_g ->
Constrexpr.cases_pattern_expr
val extern_glob_constr :
extern_env ->
'a Glob_term.glob_constr_g ->
Constrexpr.constr_expr
val extern_glob_type :
?impargs:Glob_term.binding_kind list ->
extern_env ->
'a Glob_term.glob_constr_g ->
Constrexpr.constr_expr
val extern_constr_pattern :
Termops.names_context ->
Evd.evar_map ->
Pattern.constr_pattern ->
Constrexpr.constr_expr
val 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_expr
If 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_expr
val extern_constr_in_scope :
?inctx:bool ->
Notation_term.scope_name ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
Constrexpr.constr_expr
val extern_reference :
?loc:Loc.t ->
Names.Id.Set.t ->
Names.GlobRef.t ->
Libnames.qualid
val extern_type :
?goal_concl_style:bool ->
Environ.env ->
Evd.evar_map ->
?impargs:Glob_term.binding_kind list ->
EConstr.types ->
Constrexpr.constr_expr
val extern_sort : Evd.evar_map -> Sorts.t -> Constrexpr.sort_expr
val extern_rel_context :
EConstr.constr option ->
Environ.env ->
Evd.evar_map ->
EConstr.rel_context ->
Constrexpr.local_binder_expr list
val set_extern_reference :
( ?loc:Loc.t -> Names.Id.Set.t -> Names.GlobRef.t -> Libnames.qualid ) ->
unit
Customization of the global_reference printer
val get_extern_reference :
unit ->
?loc:Loc.t ->
Names.Id.Set.t ->
Names.GlobRef.t ->
Libnames.qualid
WARNING: 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_env
Probably shouldn't be used