// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/DoubleBiFunction.java
// @FunctionalInterface
// public interface DoubleBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(double t, double u);
//     
// }
// 
// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/IntBiFunction.java
// @FunctionalInterface
// public interface IntBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(int t, int u);
//     
// }
// 
// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/LongBiFunction.java
// @FunctionalInterface
// public interface LongBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(long t, long u);
//     
// }


import ch.codebulb.lambdaomega.abstractions.functions.DoubleBiFunction;
import ch.codebulb.lambdaomega.abstractions.functions.IntBiFunction;
import ch.codebulb.lambdaomega.abstractions.functions.LongBiFunction;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
import java.util.function.BinaryOperator;
import java.util.function.DoubleBinaryOperator;
import java.util.function.IntBinaryOperator;
import java.util.function.LongBinaryOperator;
import java.util.function.ObjDoubleConsumer;
import java.util.function.ObjIntConsumer;
import java.util.function.ObjLongConsumer;
import java.util.function.ToDoubleBiFunction;
import java.util.function.ToIntBiFunction;
import java.util.function.ToLongBiFunction;
        return call((T)Integer.valueOf(t), (U)Integer.valueOf(u));
    }

    @Override
    public default R apply(long t, long u) {
        return call((T)Long.valueOf(t), (U)Long.valueOf(u));
    }

    @Override
    public default R apply(double t, double u) {
        return call((T)Double.valueOf(t), (U)Double.valueOf(u));
    }
    
    @Override
    public default int applyAsInt(T t, U u) {
        return (Integer)call(t, u);
    }

    @Override
    public default long applyAsLong(T t, U u) {
        return (Long)call(t, u);
    }

    @Override
    public default double applyAsDouble(T t, U u) {
        return (Double)call(t, u);
    }

    @Override
    public default void accept(T t, int u) {
// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/DoubleBiFunction.java
// @FunctionalInterface
// public interface DoubleBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(double t, double u);
//     
// }
// 
// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/IntBiFunction.java
// @FunctionalInterface
// public interface IntBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(int t, int u);
//     
// }
// 
// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/functions/LongBiFunction.java
// @FunctionalInterface
// public interface LongBiFunction<R> {
// 
//     /**
//      * Applies this function to the given arguments.
//      *
//      * @param t the first function argument
//      * @param u the second function argument
//      * @return the function result
//      */
//     R apply(long t, long u);
//     
// }


// Path: src/main/java/ch/codebulb/lambdaomega/abstractions/BiFunctionalI.java
import ch.codebulb.lambdaomega.abstractions.functions.DoubleBiFunction;
import ch.codebulb.lambdaomega.abstractions.functions.IntBiFunction;
import ch.codebulb.lambdaomega.abstractions.functions.LongBiFunction;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
import java.util.function.BinaryOperator;
import java.util.function.DoubleBinaryOperator;
import java.util.function.IntBinaryOperator;
import java.util.function.LongBinaryOperator;
import java.util.function.ObjDoubleConsumer;
import java.util.function.ObjIntConsumer;
import java.util.function.ObjLongConsumer;
import java.util.function.ToDoubleBiFunction;
import java.util.function.ToIntBiFunction;
import java.util.function.ToLongBiFunction;

        return call((T)Integer.valueOf(t), (U)Integer.valueOf(u));
    }

    @Override
    public default R apply(long t, long u) {
        return call((T)Long.valueOf(t), (U)Long.valueOf(u));
    }

    @Override
    public default R apply(double t, double u) {
        return call((T)Double.valueOf(t), (U)Double.valueOf(u));
    }
    
    @Override
    public default int applyAsInt(T t, U u) {
        return (Integer)call(t, u);
    }

    @Override
    public default long applyAsLong(T t, U u) {
        return (Long)call(t, u);
    }

    @Override
    public default double applyAsDouble(T t, U u) {
        return (Double)call(t, u);
    }

    @Override
    public default void accept(T t, int u) {
        call(t, (U) Integer.valueOf(u));