class Method def to_proc m = self lambda { |*args, **opts, &b| m.call(*args, **opts, &b) } end def <<(other) ->(*args, **opts, &block) { call(other.call(*args, **opts, &block)) } end def >>(other) ->(*args, **opts, &block) { other.call(call(*args, **opts, &block)) } end end