(********************
*
* This operator returns the value of adding up the operands.
* It overloads the variadic builtin implementation of ADD, which is impemented for ANY_NUM
*
*********************)
FUNCTION ADD<T1: ANY, T2: ANY> : T1
VAR_INPUT
    IN1 : T1;
    IN2 : T2;
END_VAR
END_FUNCTION

FUNCTION SUB<T1: ANY, T2: ANY> : T1
VAR_INPUT
    IN1 : T1;
    IN2 : T2;
END_VAR
END_FUNCTION

(*
FUNCTION MUL<T: ANY> : T
VAR_INPUT
    args: {sized} T...;
END_VAR
END_FUNCTION
*)

FUNCTION DIV<T1: ANY, T2: ANY> : T1
VAR_INPUT
    IN1 : T1;
    IN2 : T2;
END_VAR
END_FUNCTION
