# File weave.rb, line 136
  def self.rb_define_method klass, name, sym, arity
    prev = nil
    
    begin
      prev = klass.instance_method(name.to_sym)
    rescue NameError
    end

    case sym
      when UnboundMethod
        klass.instance_eval {
          define_method name.to_sym, sym
        }
      when Symbol
        Weave::FFI.define_method klass, name, sym.sym, arity
      when Numeric
        # maybe someone passed in a handle?
        Weave::FFI.define_method klass, name, sym, arity
    end
    
    return prev
  end