name-based type systems