Fixed few minor parser bugs with ident types
Make class predicates work in def consistent

Now they follow the `(=> pred+) type` syntax that is used in class and
instance definitions.