prelude: |
  a = (1..3).lazy
  b = a.map {|x| x}

benchmark:
  first_ary: a.zip(["a", "b", "c"]).first
  first_nonary: a.zip("a".."c").first
  first_noarg: a.zip.first

  take3_ary: a.zip(["a", "b", "c"]).take(3).force
  take3_nonary: a.zip("a".."c").take(3).force
  take3_noarg: a.zip.take(3).force

  chain-first_ary: b.zip(["a", "b", "c"]).first
  chain-first_nonary: b.zip("a".."c").first
  chain-first_noarg: b.zip.first

  chain-take3_ary: b.zip(["a", "b", "c"]).take(3).force
  chain-take3_nonary: b.zip("a".."c").take(3).force
  chain-take3_noarg: b.zip.take(3).force

  block: a.zip("a".."c") {|x, y| [x, y]}