def [](fn, *args)
      fetched = fetch(fn)

      return Function.new(fetched, args: args, name: fn) unless already_wrapped?(fetched)
      args.empty? ? fetched : fetched.with(*args)
    end
def [](fn, *args)
      fetched = fetch(fn)

      return Function.new(fetched, args: args, name: fn) unless already_wrapped?(fetched)
      args.empty? ? fetched : fetched.with(*args)
    end
Builds the transformation

 @param [Proc, Symbol] fn
   A proc, a name of the module's own function, or a name of imported
   procedure from another module
 @param [Object, Array] args
   Args to be carried by the transproc

 @return [Transproc::Function]

 @alias :t