defs = let_defs; "in"; body = term ->
return_term loc (CicAst.LetRec (ind_kind, defs, body))
]
+ | "apply" LEFTA
+ [ t1 = term; t2 = term ->
+ let rec aux = function
+ | CicAst.Appl (hd :: tl) -> aux hd @ tl
+ | term -> [term]
+ in
+ CicAst.Appl (aux t1 @ [t2])
+ ]
| "binder" RIGHTA
[
b = binder;
| "mult" LEFTA [ (* nothing here by default *) ]
| "power" LEFTA [ (* nothing here by default *) ]
| "inv" NONA [ (* nothing here by default *) ]
- | "apply" LEFTA
- [ t1 = term; t2 = term ->
- let rec aux = function
- | CicAst.Appl (hd :: tl) -> aux hd @ tl
- | term -> [term]
- in
- CicAst.Appl (aux t1 @ [t2])
- ]
| "simple" NONA
[ sort = sort -> CicAst.Sort sort
| n = substituted_name -> return_term loc n