code: function lbo(array, e) {
    if (arguments.length < 2) {
      return lbo.bind(null, array);
    }
    var parsers = array.map(spaced);
    var combined = ione(ast.Operator, P.alt.apply(null, parsers));
    var allTogether = P.seq(e, P.seq(combined, e).many());
    return allTogether.map(function(data) {
      return data[1].reduce(function(acc, x) {
        return ast.BinOp(indc(acc, x[1]), x[0], acc, x[1]);
      }, data[0]);
    });
  }
docs: / This helper is super dense, but basically it takes a "next step down in the / chain" parser and a string with space separated operator names that occur at / the same level of precedence, and creates a new parser that parses those / operators out with left-associativity, so that `lbo(lbo(Number, "+ -"), "* / /")` correctly parses multiplication and division as having higher priority / than addition and subtraction.