Changed the type system a bit: nominal types are now required