code: function foldl (iter, binaryFn, seed) {
      var state, element;
      if (seed !== void 0) {
        state = seed;
      }
      else {
        state = iter();
      }
      element = iter();
      while (element != null) {
        state = binaryFn.call(element, state, element);
        element = iter();
      }
      return state;
    }
docs: Mixing in the iterator functions --------------------------------