unify_components (FunctionType)

    # File lib/support.rb, line 130
      def unify_components(other)
        raise TypeError, "Unable to unify: different number of args #{self.inspect} vs #{other.inspect}" unless
          @formal_types.length == other.formal_types.length

        @formal_types.each_with_index do |t, i|
          t.unify other.formal_types[i]
        end

        @receiver_type.unify other.receiver_type
        @return_type.unify other.return_type
    #  rescue RuntimeError # print more complete warning message
    #    raise "Unable to unify\n#{self}\nwith\n#{other}"
      end