module T::Utils

def self.register_forwarder(from_method, to_method, remove_first_param: false)

such that the signature is accurate.
The caller of this method must ensure that the forwarder method properly forwards all parameters

so they cannot be validated as strictly.
splat parameters, rather than the exact set of parameters ultimately used by the target method,
forwards to. This is necessary because forwarder methods are often declared with catch-all
Associates a signature with a forwarder method that matches the signature of the method it
def self.register_forwarder(from_method, to_method, remove_first_param: false)
  T::Private::Methods.register_forwarder(
    from_method, to_method, remove_first_param: remove_first_param
  )
end