| [term, _] when i = 1 -> term
| _ :: tl -> get_guard (pred i) tl
in
| [term, _] when i = 1 -> term
| _ :: tl -> get_guard (pred i) tl
in
let pvars, pbody = strip i typ in
let _, bbody = strip i body in
term, pvars, pbody, bbody
let pvars, pbody = strip i typ in
let _, bbody = strip i body in
term, pvars, pbody, bbody
+ | term, None ->
+ let pbody = Ast.Implicit in
+ let pvars, bbody = strip i body in
+ term, pvars, pbody, bbody
- (fun (name,ty,coercion) ->
- " " ^ name ^ if coercion then ":>" else ": " ^ pp_term ty) fields)
+ (fun (name,ty,coercion,arity) ->
+ " " ^ name ^
+ if coercion then (":" ^
+ if arity > 0 then string_of_int arity else "" ^ ">") else ": " ^
+ pp_term ty) fields)