Revamp the type system.