Shouldn't semantic on an `IdentifierExp` always result in another type of expression?  So, if type is set, it's an error?