Ltac_plugin.TaccoerceSourceCoercions from highest level generic arguments to actual data used by Ltac interpretation. Those functions examinate dynamic types and try to return something sensible according to the object content.
Exception raised whenever a coercion failed.
type appl = | UnnamedApplFor generic applications: nothing is printed
*)| GlbAppl of (Names.KerName.t * Geninterp.Val.t list) listFor calls to global constants, some may alias other.
*)Abstract application, to print ltac functions
type tacvalue = | VFun of appl
* Tacexpr.ltac_trace
* Loc.t option
* Geninterp.Val.t Names.Id.Map.t
* Names.Name.t list
* Tacexpr.glob_tactic_expr| VRec of Geninterp.Val.t Names.Id.Map.t Stdlib.ref * Tacexpr.glob_tactic_exprThe of_* functions cast a given argument into a value. The to_* do the converse, and return None if there is a type mismatch.
val coerce_to_intro_pattern :
Evd.evar_map ->
Value.t ->
Tactypes.delayed_open_constr Tactypes.intro_pattern_exprval coerce_to_intro_pattern_naming :
Evd.evar_map ->
Value.t ->
Namegen.intro_pattern_naming_exprval coerce_to_intro_pattern_list :
?loc:Loc.t ->
Evd.evar_map ->
Value.t ->
Tacexpr.intro_patternsval coerce_to_quantified_hypothesis :
Evd.evar_map ->
Value.t ->
Tactypes.quantified_hypothesisval error_ltac_variable :
?loc:Loc.t ->
Names.Id.t ->
(Environ.env * Evd.evar_map) option ->
Value.t ->
string ->
'a