Module Ltac2_plugin.Tac2intern

type context = (Names.Id.t * Tac2expr.type_scheme) list
val intern_open_type : Tac2expr.raw_typexpr -> Tac2expr.type_scheme
val intern_abbrev : Deprecation.t option -> Tac2expr.raw_tacexpr -> Tac2env.abbrev_data
val intern_accumulate_errors : strict:bool -> context -> Tac2expr.raw_tacexpr -> Tac2expr.glb_tacexpr * Tac2expr.type_scheme * Pp.t Loc.located list
val genintern_warn_not_unit : ?check_unused:bool -> Genintern.glob_sign -> (Names.Name.t * Tac2typing_env.mix_type_scheme) list -> Tac2expr.raw_tacexpr -> Tac2expr.glb_tacexpr

check_unused is default true

type not_value_reason =
| MutString
| Application
| MutDef of Tac2expr.ltac_constant
| MutCtor of Tac2expr.type_constant
| MutProj of Tac2expr.type_constant
| MaybeValButNotSupported
val check_value : Tac2expr.glb_tacexpr -> not_value_reason option

Check that a term is a value. Only values are safe to marshall between processes.

val is_pure_constructor : Tac2expr.type_constant -> bool
val check_unit : ?loc:Loc.t -> Tac2expr.type_scheme -> unit
val check_subtype : Tac2expr.type_scheme -> Tac2expr.type_scheme -> bool

check_subtype t1 t2 returns true iff all values of instances of type t1 also have type t2.

Errors

val error_nargs_mismatch : ?loc:Loc.t -> Tac2expr.ltac_constructor -> int -> int -> 'a
val error_nparams_mismatch : ?loc:Loc.t -> int -> int -> 'a

Misc

val drop_ltac2_env : Genintern.Store.t -> Genintern.Store.t