Module Evar_kinds
type obligation_definition_status=|Define of bool|Expandtype matching_var_kind=|FirstOrderPatVar of Names.Id.t|SecondOrderPatVar of Names.Id.ttype subevar_kind=|Domain|Codomain|Bodytype record_field={fieldname : Names.Constant.t;recordname : Names.inductive;}type question_mark={qm_obligation : obligation_definition_status;qm_name : Names.Name.t;qm_record_field : record_field option;}
val default_question_mark : question_mark
type t=|ImplicitArg of Names.GlobRef.t * int * Names.Id.t option * boolForce inference
|BinderType of Names.Name.t|EvarType of Names.Id.t option * Evar.t|NamedHole of Names.Id.t|QuestionMark of question_mark|CasesType of bool|InternalHole|TomatchTypeParameter of Names.inductive * int|GoalEvar|ImpossibleCase|MatchingVar of matching_var_kind|VarInstance of Names.Id.t|SubEvar of subevar_kind option * Evar.t