':see Expression._set_type()'

def _set_type(self, other_type=ANY_TYPE, signature=None):

    assert isinstance(other_type, Type)
    if (signature is None):
        signature = defaultdict(list)
    if (not other_type.matches(ENTITY_TYPE)):
        raise IllegalTypeException(self, other_type, ENTITY_TYPE)
    signature[self.variable.name].append(self)
