class ::Regexp class NegRegexp def initialize r @rx = r end def match l ! @rx.match( l) end def =~ l ! @rx =~ l end def -@ @rx end end def -@ NegRegexp.new self end end class ::Object def functional meth = nil Functional.new self, meth end alias to_fun functional end class Functional include Enumerable class Base attr_reader :exe attr_accessor :next def initialize &e @exe = e end def call *a @next.call *a end def end @next.end end def to_proc method( :call).to_proc end end class Collect