# File weave.rb, line 171
  def self.rb_define_singleton_method object, name, sym, arity
    prev = nil
    
    meta = class << object; self; end
    
    begin
      prev = meta.instance_method(name.to_sym)
    rescue NameError
    end
    
    case sym
      when UnboundMethod
        meta.instance_eval {
          define_method name.to_sym, sym
        }
      when Symbol
        Weave::FFI.define_singleton_method object, name, sym.sym, arity
      when Numeric
        # maybe someone passed in a handle?
        Weave::FFI.define_singleton_method object, name, sym, arity
    end
    return prev
  end