def to_mom( compiler )
      @receiver = SelfExpression.new(compiler.receiver_type) if @receiver.is_a?(SelfExpression)
      if(@receiver.ct_type)
        simple_call(compiler)
      else
        cached_call(compiler)
      end
    end
def to_mom( compiler )
      @receiver = SelfExpression.new(compiler.receiver_type) if @receiver.is_a?(SelfExpression)
      if(@receiver.ct_type)
        simple_call(compiler)
      else
        cached_call(compiler)
      end
    end
A Send breaks down to 2 steps:
 - Setting up the next message, with receiver, arguments, and (importantly) return address
 - a CachedCall , or a SimpleCall, depending on wether the receiver type can be determined