@Override
    public TensorType type(TypeContext<Reference> context) {
        // Compute type using tensor types as operation operators are supported on tensors
        // and is correct also in the special case of doubles.
        // As all our functions are type-commutative, we don't need to take operator precedence into account
        TensorType type = children.get(0).type(context);
        for (int i = 1; i < children.size(); i++)
            type = Join.outputType(type, children.get(i).type(context));
        return type;
    }
Returns true if this node has lower precedence than the parent
(even though by virtue of being a node it will be calculated before the parent).
searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/OperationNode.java