DataType assignOutputType(DataType outputType) {
        // Since we assign in both directions, we may already have more precise info
        return this.outputType = leastGeneralNonNullOf(this.outputType, outputType);
    }
Sets the output type of this and returns the resulting input type, or null if it cannot be
uniquely determined.
Subtypes implement this by calling setOutputType(outputType, requiredType, VerificationContext context).
indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/Expression.java