(* Syntax pattern extensions *)
+ | Literal of literal
| Layout of layout_pattern
| Magic of magic_term
| Variable of pattern_variable
| Below of term * term
| Above of term * term
| Frac of term * term
+ | Over of term * term
| Atop of term * term
-(* | Array of term * literal option * literal option
+(* | array of term * literal option * literal option
|+ column separator, row separator +| *)
| Sqrt of term
| Root of term * term (* argument, index *)
(* level 2 variables *)
| FreshVar of string
+type argument_pattern =
+ | IdentArg of string
+ | EtaArg of string option * argument_pattern (* eta abstraction *)
+
+type cic_appl_pattern =
+ | UriPattern of string
+ | ArgPattern of argument_pattern
+ | ApplPattern of cic_appl_pattern list
+
+type value =
+ | TermValue of term
+ | StringValue of string
+ | NumValue of string
+ | OptValue of value option
+ | ListValue of value list
+
+type value_type =
+ | TermType
+ | StringType
+ | NumType
+ | OptType of value_type
+ | ListType of value_type
+
+type declaration = string * value_type
+