// object functors class Function // or Factory { Object @ default; fun Object evaluate() { return default; } } class Predicate { false => int default; fun int test() { return false; } } class Procedure // or Runnable { fun void run() { // empty } } class Comparator { 0 => int default; fun int compare(Object arg0, Object arg1) { return default; } } class UnaryPredicate { false => int default; fun int test(Object arg) { return false; } } class UnaryProcedure { fun void run(Object arg) { // empty } } class UnaryFunction { Object @ default; fun Object evaluate(Object arg) { return default; } } class BinaryPredicate { false => int default; fun int test(Object arg0, Object arg1) { return default; } } class BinaryProcedure { fun void run(Object arg0, Object arg1) { // empty } } class BinaryFunction { Object @ default; fun Object evaluate(Object arg0, Object arg1) { return default; } } class TertiaryPredicate { false => int default; fun int test(Object arg0, Object arg1, Object arg2) { return default; } } class TertiaryProcedure { fun void run(Object arg0, Object arg1, Object arg2) { // empty } } class TertiaryFunction { Object @ default; fun Object evaluate(Object arg0, Object arg1, Object arg2) { return default; } } class QuaternaryPredicate { false => int default; fun int test(Object arg0, Object arg1, Object arg2, Object arg3) { return default; } } class QuaternaryProcedure { fun void run(Object arg0, Object arg1, Object arg2, Object arg3) { // empty } } class QuaternaryFunction { Object @ default; fun Object evaluate(Object arg0, Object arg1, Object arg2, Object arg3) { return default; } } // int functors class IntPredicate { false => int default; fun int test(int arg) { return false; } } class IntProcedure { fun void run(int arg) { // empty } } class IntFunction { 0 => int default; fun int evaluate(int arg) { return default; } } class IntComparator { 0 => int default; fun int compare(int arg0, int arg1) { return default; } } class IntIntPredicate { false => int default; fun int test(int arg0, int arg1) { return default; } } class IntIntProcedure { fun void run(int arg0, int arg1) { // empty } } class IntIntFunction { 0 => int default; fun int evaluate(int arg0, int arg1) { return default; } } class IntIntIntPredicate { false => int default; fun int test(int arg0, int arg1, int arg2) { return default; } } class IntIntIntProcedure { fun void run(int arg0, int arg1, int arg2) { // empty } } class IntIntIntFunction { 0 => int default; fun int evaluate(int arg0, int arg1, int arg2) { return default; } } class IntIntIntIntPredicate { false => int default; fun int test(int arg0, int arg1, int arg2, int arg3) { return default; } } class IntIntIntIntProcedure { fun void run(int arg0, int arg1, int arg2, int arg3) { // empty } } class IntIntIntIntFunction { 0 => int default; fun int evaluate(int arg0, int arg1, int arg2, int arg3) { return default; } } // float functors class FloatPredicate { false => int default; fun int test(float arg) { return false; } } class FloatProcedure { fun void run(float arg) { // empty } } class FloatFunction { 0.0 => float default; fun float evaluate(float arg) { return default; } } class FloatComparator { 0 => int default; fun int compare(float arg0, float arg1) { return default; } } class FloatFloatPredicate { false => int default; fun int test(float arg0, float arg1) { return default; } } class FloatFloatProcedure { fun void run(float arg0, float arg1) { // empty } } class FloatFloatFunction { 0.0 => float default; fun float evaluate(float arg0, float arg1) { return default; } } class FloatFloatFloatPredicate { false => int default; fun int test(float arg0, float arg1, float arg2) { return default; } } class FloatFloatFloatProcedure { fun void run(float arg0, float arg1, float arg2) { // empty } } class FloatFloatFloatFunction { 0.0 => float default; fun float evaluate(float arg0, float arg1, float arg2) { return default; } } class FloatFloatFloatFloatPredicate { false => int default; fun int test(float arg0, float arg1, float arg2, float arg3) { return default; } } class FloatFloatFloatFloatProcedure { fun void run(float arg0, float arg1, float arg2, float arg3) { // empty } } class FloatFloatFloatFloatFunction { 0.0 => float default; fun float evaluate(float arg0, float arg1, float arg2, float arg3) { return default; } } <<<"ok">>>;