```ruby
require 'transproc/version'
require 'transproc/function'
require 'transproc/composer'

module Transproc
  def self.register(*args, &block)
    name, fn = *args
    functions[name] = fn || block
  end

  def self.register_from(mod)
    (mod.public_methods - Module.public_methods).each do |meth|
      Transproc.register(meth, mod.method(meth))
    end
  end

  def self.functions
    @_functions ||= {}
  end

  def self.[](name)
    functions.fetch(name)
  end
end

def Transproc(fn, *args)
  case fn
  when Proc then Transproc::Function.new(fn, args)
  when Symbol then Transproc::Function.new(Transproc[fn], args)
  end
end
```

Use module_function in Transproc module
user
```ruby
require 'transproc/version'
require 'transproc/function'
require 'transproc/composer'

module Transproc
  module_function

  def register(*args, &block)
    name, fn = *args
    functions[name] = fn || block
  end

  def register_from(mod)
    (mod.public_methods - Module.public_methods).each do |meth|
      Transproc.register(meth, mod.method(meth))
    end
  end

  def [](name)
    functions.fetch(name)
  end

  def functions
    @_functions ||= {}
  end
end

def Transproc(fn, *args)
  case fn
  when Proc then Transproc::Function.new(fn, args)
  when Symbol then Transproc::Function.new(Transproc[fn], args)
  end
end
```
assistant