Module Constrexpr
Concrete syntax for terms
type universe_decl_expr= (Names.lident list, Glob_term.glob_constraint list) UState.gen_universe_declconstr_expris the abstract syntax tree produced by the parser
type ident_decl= Names.lident * universe_decl_expr optiontype name_decl= Names.lname * universe_decl_expr optiontype notation_with_optional_scope=|LastLonelyNotation|NotationInScope of stringtype entry_level= inttype entry_relative_level=|LevelLt of entry_level|LevelLe of entry_level|LevelSometype notation_entry=|InConstrEntry|InCustomEntry of stringtype notation_entry_level=|InConstrEntrySomeLevel|InCustomEntryLevel of string * entry_leveltype notation_key= stringtype notation= notation_entry * notation_keytype specific_notation= notation_with_optional_scope * (notation_entry * notation_key)type 'a or_by_notation_r=|AN of 'a|ByNotation of string * string optiontype 'a or_by_notation= 'a or_by_notation_r CAst.ttype explicitation=|ExplByPos of int * Names.Id.t option|ExplByName of Names.Id.ttype binder_kind=|Default of Glob_term.binding_kind|Generalized of Glob_term.binding_kind * bool(Inner binding always Implicit) Outer bindings, typeclass-specific flag for implicit generalization of superclasses
type abstraction_kind=|AbsLambda|AbsPitype proj_flag= int optionSome n= proj of the n-th visible argument
type prim_token=|Numeral of NumTok.Signed.t|String of stringtype instance_expr= Glob_term.glob_level listtype cases_pattern_expr_r=|CPatAlias of cases_pattern_expr * Names.lname|CPatCstr of Libnames.qualid * cases_pattern_expr list option * cases_pattern_expr listCPatCstr (_, c, Some l1, l2)represents(@ c l1) l2|CPatAtom of Libnames.qualid option|CPatOr of cases_pattern_expr list|CPatNotation of notation_with_optional_scope option * notation * cases_pattern_notation_substitution * cases_pattern_expr listCPatNotation (_, n, l1 ,l2) represents (notation n applied with substitution l1) applied to arguments l2
|CPatPrim of prim_token|CPatRecord of (Libnames.qualid * cases_pattern_expr) list|CPatDelimiters of string * cases_pattern_expr|CPatCast of cases_pattern_expr * constr_exprand cases_pattern_expr= cases_pattern_expr_r CAst.tand cases_pattern_notation_substitution= cases_pattern_expr list * cases_pattern_expr list listand constr_expr_r=and constr_expr= constr_expr_r CAst.tand case_expr= constr_expr * Names.lname option * cases_pattern_expr optionand branch_expr= (cases_pattern_expr list list * constr_expr) CAst.tand fix_expr= Names.lident * recursion_order_expr option * local_binder_expr list * constr_expr * constr_exprand cofix_expr= Names.lident * local_binder_expr list * constr_expr * constr_exprand recursion_order_expr_r=|CStructRec of Names.lident|CWfRec of Names.lident * constr_expr|CMeasureRec of Names.lident option * constr_expr * constr_expr optionargument, measure, relation
and recursion_order_expr= recursion_order_expr_r CAst.tand local_binder_expr=|CLocalAssum of Names.lname list * binder_kind * constr_expr|CLocalDef of Names.lname * constr_expr * constr_expr option|CLocalPattern of (cases_pattern_expr * constr_expr option) CAst.tand constr_notation_substitution= constr_expr list * constr_expr list list * cases_pattern_expr list * local_binder_expr list listtype constr_pattern_expr= constr_expr
type with_declaration_ast=|CWith_Module of Names.Id.t list CAst.t * Libnames.qualid|CWith_Definition of Names.Id.t list CAst.t * universe_decl_expr option * constr_exprtype module_ast_r=|CMident of Libnames.qualid|CMapply of module_ast * module_ast|CMwith of module_ast * with_declaration_astand module_ast= module_ast_r CAst.t