Added or for type/data defs.
Added where and with.
Added Typeclasses.