code: func scalarBinop(op ItemType, lhs, rhs float64) float64 {
  	switch op {
  	case ItemADD:
  		return lhs + rhs
  	case ItemSUB:
  		return lhs - rhs
  	case ItemMUL:
  		return lhs * rhs
  	case ItemDIV:
  		return lhs / rhs
  	case ItemPOW:
  		return math.Pow(lhs, rhs)
  	case ItemMOD:
  		return math.Mod(lhs, rhs)
  	case ItemEQL:
  		return btos(lhs == rhs)
  	case ItemNEQ:
  		return btos(lhs != rhs)
  	case ItemGTR:
  		return btos(lhs > rhs)
  	case ItemLSS:
  		return btos(lhs < rhs)
  	case ItemGTE:
  		return btos(lhs >= rhs)
  	case ItemLTE:
  		return btos(lhs <= rhs)
  	}
  	panic(errors.Errorf("operator %q not allowed for Scalar operations", op))
  }
docs: // scalarBinop evaluates a binary operation between two Scalars.