Still refactoring: most values properly carry around the type, now.