@Override
    default long hash(T object) {
        if (isNull(object)) {
            return 0;
        } else {
            final long l = Double.doubleToLongBits(applyAsDouble(object));
            return (int) (l ^ (l >>> 32));
        }
    }
Returns a typed {@code ToDoubleNullable<T>} using the provided
{@code lambda}.

@param <T> type to extract from
@param lambda to convert
@return a typed {@code ToDoubleNullable<T>} using the provided
{@code lambda}

@throws NullPointerException if the provided {@code lambda} is
{@code null}
runtime-parent/runtime-compute/src/main/java/com/speedment/runtime/compute/ToDoubleNullable.java