Ron de Bruijn wrote: > con nametwo::Type = int ? Type -> int (* not OK *) The problem here is very basic: "?" is a parsing non-terminal, not a literal token. You need to fill in one of its concrete values (there are only two).