# File lib/core/facets/enumerable/per.rb, line 21
  def per(enum_method=nil, *enum_args)
    if enum_method
      Functor.new do |op, *args, &blk|
        __send__(enum_method || :map, *enum_args){ |x, *y| x.__send__(op, *y, *args, &blk) }
      end
    else
      Functor.new do |enumr_method, *enumr_args|
        Functor.new do |op, *args, &blk|
          __send__(enumr_method, *enumr_args){ |x, *y| x.__send__(op, *y, *args, &blk) }
        end
      end
    end
  end