code: public SmartHandle bindTo(Object obj) {
          return new SmartHandle(signature.dropFirst(), handle.bindTo(obj));
      }
docs: Bind the first argument of this SmartHandle to the given object,
  returning a new adapted handle.
  
  @param obj the object to which to bind this handle's first argument
  @return a new SmartHandle with the first argument dropped in favor of obj