Abstract base class for Java function implementations that take two arguments and return one value.
Subclasses need only implement {@link LuaValue#call(LuaValue,LuaValue)} to complete this class, simplifying development. All other uses of {@link #call()}, {@link #invoke(Varargs)},etc, are routed through this method by this class, dropping or extending arguments with {@code nil} values as required.
If more or less than two arguments are required, or variable argument or variable return values, then use one of the related function {@link ZeroArgFunction}, {@link OneArgFunction}, {@link ThreeArgFunction}, or {@link VarArgFunction}.
See {@link LibFunction} for more information on implementation libraries and library functions.
@see #call(LuaValue,LuaValue)
@see LibFunction
@see ZeroArgFunction
@see OneArgFunction
@see ThreeArgFunction
@see VarArgFunction