_loop = function _loop(i) {
					var a = o.logical ? operands[i - 1] : prev;
					var b = operands[i];

					if (Array.isArray(b)) {
						if (typeof o.identity == "number") {
							b = $u.numbers(b);
						}

						if (Array.isArray(a)) {
							result = [].concat(_toConsumableArray(b.map(function (n, i) {
								return o.scalar(a[i] === undefined ? o.identity : a[i], n);
							})), _toConsumableArray(a.slice(b.length)));
						} else {
							result = b.map(function (n) {
								return o.scalar(a, n);
							});
						}
					} else if (Array.isArray(a)) {
						result = a.map(function (n) {
							return o.scalar(n, b);
						});
					} else {
						result = o.scalar(a, b);
					}

					if (o.reduce) {
						prev = o.reduce(prev, result, a, b);
					} else if (o.logical) {
						prev = prev && result;
					} else {
						prev = result;
					}
				}
Extend a scalar operator to arrays, or arrays and scalars
The operation between arrays is applied element-wise.
The operation operation between a scalar and an array will result in
the operation being applied between the scalar and every array element.