public static <T> ToDoubleNullable<T>
    powOrNull(ToDoubleNullable<T> expression, ToInt<T> power) {
        return new ToDoubleNullableImpl<>(
            PowUtil.doublePowInt(expression.orThrow(), power),
            expression.isNull()
        );
    }
Creates and returns an expression that takes the result of an input
expression and multiplies it with itself as many times as the result of
applying {@code power} to the input.

@param expression  the input expression
@param power       the power
@param <T>         the input type
@return            the new expression
runtime-parent/runtime-compute/src/main/java/com/speedment/runtime/compute/expression/Expressions.java