class Enumerator

def initialize_with_optional_block(*arg, &block)

def initialize_with_optional_block(*arg, &block)
  return initialize_without_optional_block(*arg, &nil) unless arg.empty?  # Ruby 1.9 apparently ignores the block if any argument is present
  initialize_without_optional_block(GeneratorBP.new(&block))
end