name-based type system