module Tins::ProcCompose

def compose(other)

def compose(other)
  self.class.new do |*args|
    if other.respond_to?(:call)
      call(*other.call(*args))
    else
      call(*other.to_proc.call(*args))
    end
  end
end