# File lib/multimethod/multimethod.rb, line 86
    def remove_method(x)
      case x
      when Signature
        m = find_method(x) 
        m = m[0]
        return unless m
        raise("No method found for #{x.to_s}") unless m
      else
        m = x
      end

      m.remove_implementation
      m.multimethod = nil
      @method.delete(m)
      @lookup_method = { } # flush cache

      # Remove multimethod dispatch in the method's module?
      if @method.collect{|x| m.signature.mod = m.signature.mod}.empty?
        remove_dispatch(m.signature.mod)
      end
    end