name = IDENT; params = LIST0 [ arg = arg -> arg ] ;
SYMBOL ":"; typ = term; SYMBOL <:unicode<def>>; SYMBOL "{" ;
fields = LIST0 [
- name = IDENT ; SYMBOL ":" ; ty = term -> (name,ty)
+ name = IDENT ;
+ coercion = [ SYMBOL ":" -> false | SYMBOL ":"; SYMBOL ">" -> true ] ;
+ ty = term -> (name,ty,coercion)
] SEP SYMBOL ";"; SYMBOL "}" ->
let params =
List.fold_right