Calculator

This module implements the arithmetic operations on the built-in types: bte, sht, int, flt, dbl, lng and hge if available. All combinations are implemented. Limited combinations are implemented for bit, oid and str.

binary operators The implemented operators are first of all all comparison that return a TRUE/FALSE (bit) value, i.e. <=, <, ==, !=, >=, and >=.

The module also implements the operators +, -, * and /. The rules for the return types operators is as follows. If one of the input types is a floating point the result will be a floating point. The largest type of the input types is taken.

The max and min functions return the maximum and minimum of the two input parameters. unary operators This module also implements the unary abs() function, which calculates the absolute value of the given input parameter, as well as the - unary operator.

The inv unary operation calculates the inverse of the input value. An error message is given when the input value is zero.

bitwise operators For integers there are some additional operations. The % operator implements the congruent modulo operation. The << and >> are the left and right bit shift. The or, and, xor and not for integers are implemented as bitwise boolean operations.

boolean operators The or, and, xor and not are implemented as the logic operations.

random numbers This module also contains the rand and srand functions. The srand() function initializes the random number generator using a seed value. The subsequent calls to rand() are pseudo random numbers (with the same seed the sequence can be repeated).

The general interpretation for the NIL value is "unknown". This semantics mean that any operation that receives at least one NIL value, will produce a NIL value in the output. The "==" and "!=" have a 'nil_matches' optional argument to determine if a NIL value should be treated as a value in the domain.

Calc module

``````MODULE calc;

PATTERN calc.!=(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bit, X_1:bit, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:blob, X_1:blob, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:bte, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.!=(X_0:date, X_1:date, X_2:bit):bit;
COMMENT "Equality of two dates";

PATTERN calc.!=(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.!=(X_0:daytime, X_1:daytime, X_2:bit):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.!=(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:dbl, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:flt, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:inet, X_1:inet, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:int, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:json, X_1:json):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:json, X_1:json, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:lng, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:oid, X_1:oid, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:int):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:int, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:sht, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:str, X_1:str):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:str, X_1:str, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.!=(X_0:timestamp, X_1:timestamp, X_2:bit):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.!=(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 != V2";

PATTERN calc.!=(X_0:uuid, X_1:uuid, X_2:bit):bit;
COMMENT "Return V1 != V2";

PATTERN calc.%(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:bte):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:bte):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:bte):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:flt):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:int):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:int):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:int):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:int):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:lng):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:lng):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:lng):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:lng):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:sht):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:sht):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:sht):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:bte, X_1:sht):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:bte):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:flt):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:int):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:lng):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:dbl, X_1:sht):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:bte):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:flt):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:int):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:lng):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:flt, X_1:sht):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:bte):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:bte):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:bte):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:bte):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:flt):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:int):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:int):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:lng):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:lng):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:sht):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:sht):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:int, X_1:sht):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:bte):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:bte):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:bte):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:flt):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:int):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:int):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:sht):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:lng, X_1:sht):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:bte):bte;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:bte):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:bte):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:dbl):dbl;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:flt):flt;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:int):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:int):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:int):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:lng):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:lng):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:lng):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:sht):int;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:sht):lng;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.%(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 % V2, signal error on divide by zero";

PATTERN calc.*(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:bte):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:bte):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:bte):int;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:bte):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:bte):sht;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:dbl):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:dbl):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:dbl):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:dbl):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:flt):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:flt):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:flt):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:flt):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:flt):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:flt):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:int):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:int):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:int):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:int):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:lng):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:lng):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:bte, X_1:sht):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:sht):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:sht):int;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:sht):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:bte, X_1:sht):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:bte):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:bte):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:bte):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:bte):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:bte):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:flt):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:int):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:int):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:int):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:int):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:int):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:lng):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:lng):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:lng):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:lng):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:sht):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:sht):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:sht):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:sht):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:dbl, X_1:sht):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:bte):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:bte):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:flt, X_1:bte):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:bte):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:bte):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:bte):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:flt):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:flt, X_1:flt):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:int):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:int):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:flt, X_1:int):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:int):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:int):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:int):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:lng):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:lng):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:flt, X_1:lng):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:lng):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:lng):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:sht):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:sht):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:flt, X_1:sht):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:sht):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:sht):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:flt, X_1:sht):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:bte):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:bte):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:bte):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:bte):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:dbl):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:dbl):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:dbl):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:dbl):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:flt):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:flt):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:flt):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:flt):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:flt):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:flt):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:int):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:int):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:int):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:int):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:lng):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:lng):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:sht):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:sht):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:int, X_1:sht):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:int, X_1:sht):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:bte):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:bte):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:dbl):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:dbl):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:dbl):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:dbl):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:flt):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:flt):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:flt):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:flt):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:flt):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:flt):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:int):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:int):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:int):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:lng):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:lng):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:lng, X_1:sht):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:sht):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:bte):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:bte):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:bte):int;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:bte):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:dbl):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:dbl):dbl;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:dbl):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:dbl):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:dbl):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:flt):bte;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:flt):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:flt):flt;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:flt):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:flt):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:flt):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:int):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:int):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:int):int;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:int):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:lng):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:lng):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:lng):lng;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.*(X_0:sht, X_1:sht):dbl;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:sht):flt;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:sht):int;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:sht):lng;
COMMENT "Return V1 * V2, guarantee no overflow by returning larger type";

PATTERN calc.*(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 * V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:bte):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:bte):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:bte):int;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:bte):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:bte):sht;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:flt):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:flt):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:int):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:int):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:int):int;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:int):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:lng):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:lng):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:lng):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:bte, X_1:sht):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:sht):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:sht):int;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:sht):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:bte, X_1:sht):sht;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:bte):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:flt):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:int):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:lng):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:dbl, X_1:sht):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:bte):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:flt, X_1:bte):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:flt):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:flt, X_1:flt):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:int):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:flt, X_1:int):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:lng):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:flt, X_1:lng):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:flt, X_1:sht):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:flt, X_1:sht):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:bte):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:bte):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:bte):int;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:bte):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:flt):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:flt):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:int):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:int):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:int):int;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:int):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:lng):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:lng):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:lng):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:sht):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:sht):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:int, X_1:sht):int;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:int, X_1:sht):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:bte):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:bte):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:lng, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:lng, X_1:flt):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:flt):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:lng, X_1:int):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:int):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:int):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:lng, X_1:lng):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:lng):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:lng, X_1:sht):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:sht):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:bte):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:bte):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:bte):int;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:bte):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:dbl):dbl;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:flt):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:flt):flt;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:int):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:int):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:int):int;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:int):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:lng):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:lng):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:lng):lng;
COMMENT "Return V1 + V2, signal error on overflow";

PATTERN calc.+(X_0:sht, X_1:sht):dbl;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:sht):flt;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:sht):int;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:sht):lng;
COMMENT "Return V1 + V2, guarantee no overflow by returning larger type";

PATTERN calc.+(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 + V2, signal error on overflow";

COMMAND calc.+(X_0:str, X_1:str):str;
COMMENT "Concatenate LEFT and RIGHT";

COMMAND calc.+(X_0:str, X_1:int):str;
COMMENT "Concatenate LEFT and string representation of RIGHT";

PATTERN calc.++(X_0:bte):bte;
COMMENT "Unary V + 1";

PATTERN calc.++(X_0:dbl):dbl;
COMMENT "Unary V + 1";

PATTERN calc.++(X_0:flt):flt;
COMMENT "Unary V + 1";

PATTERN calc.++(X_0:int):int;
COMMENT "Unary V + 1";

PATTERN calc.++(X_0:lng):lng;
COMMENT "Unary V + 1";

PATTERN calc.++(X_0:sht):sht;
COMMENT "Unary V + 1";

PATTERN calc.-(X_0:bte):bte;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:dbl):dbl;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:flt):flt;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:int):int;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:lng):lng;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:sht):sht;
COMMENT "Unary negation of V";

PATTERN calc.-(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:bte, X_1:bte):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:bte):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:bte):int;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:bte):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:bte):sht;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:bte, X_1:flt):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:flt):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:bte, X_1:int):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:int):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:int):int;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:bte, X_1:int):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:lng):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:lng):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:lng):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:bte, X_1:sht):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:sht):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:sht):int;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:sht):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:bte, X_1:sht):sht;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:bte):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:flt):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:int):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:lng):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:dbl, X_1:sht):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:bte):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:flt, X_1:bte):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:flt):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:flt, X_1:flt):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:int):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:flt, X_1:int):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:lng):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:flt, X_1:lng):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:flt, X_1:sht):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:flt, X_1:sht):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:bte):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:bte):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:bte):int;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:bte):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:flt):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:flt):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:int):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:int):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:int):int;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:int):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:lng):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:lng):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:lng):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:sht):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:sht):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:int, X_1:sht):int;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:int, X_1:sht):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:bte):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:bte):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:lng, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:lng, X_1:flt):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:flt):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:lng, X_1:int):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:int):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:int):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:lng, X_1:lng):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:lng):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:lng, X_1:sht):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:sht):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:bte):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:bte):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:bte):int;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:bte):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:dbl):dbl;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:flt):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:flt):flt;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:int):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:int):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:int):int;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:int):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:lng):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:lng):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:lng):lng;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.-(X_0:sht, X_1:sht):dbl;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:sht):flt;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:sht):int;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:sht):lng;
COMMENT "Return V1 - V2, guarantee no overflow by returning larger type";

PATTERN calc.-(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 - V2, signal error on overflow";

PATTERN calc.--(X_0:bte):bte;
COMMENT "Unary V - 1";

PATTERN calc.--(X_0:dbl):dbl;
COMMENT "Unary V - 1";

PATTERN calc.--(X_0:flt):flt;
COMMENT "Unary V - 1";

PATTERN calc.--(X_0:int):int;
COMMENT "Unary V - 1";

PATTERN calc.--(X_0:lng):lng;
COMMENT "Unary V - 1";

PATTERN calc.--(X_0:sht):sht;
COMMENT "Unary V - 1";

PATTERN calc./(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:bte):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:bte):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:bte):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:bte):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:dbl):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:flt):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:int):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:lng):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:bte, X_1:sht):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:bte):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:int):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:dbl, X_1:sht):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:bte):bte;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:bte):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:dbl):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:flt):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:int):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:int):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:lng):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:sht):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:flt, X_1:sht):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:bte):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:bte):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:bte):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:dbl):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:dbl):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:dbl):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:flt):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:flt):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:flt):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:int):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:int):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:int):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:lng):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:lng):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:sht):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:sht):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:int, X_1:sht):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:bte):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:dbl):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:dbl):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:flt):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:flt):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:int):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:int):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:lng):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:sht):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:bte):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:bte):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:bte):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:bte):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:dbl):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:dbl):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:dbl):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:dbl):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:dbl):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:flt):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:flt):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:flt):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:flt):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:flt):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:int):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:int):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:int):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:int):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:int):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:lng):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:lng):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:lng):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:lng):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:lng):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:sht):dbl;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:sht):flt;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:sht):int;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:sht):lng;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc./(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 / V2, signal error on divide by zero";

PATTERN calc.<(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.<(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.<(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:int, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:json, X_1:json):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:int):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:str, X_1:str):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.<(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 < V2";

PATTERN calc.<<(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:bte, X_1:int):bte;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:bte, X_1:lng):bte;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:bte, X_1:sht):bte;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:int, X_1:bte):int;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:int, X_1:int):int;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:int, X_1:lng):int;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:int, X_1:sht):int;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:lng, X_1:int):lng;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:sht, X_1:int):sht;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:sht, X_1:lng):sht;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<<(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 << V2, raise error on out of range second operand";

PATTERN calc.<=(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.<=(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.<=(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:int, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:json, X_1:json):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:int):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:str, X_1:str):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.<=(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.<=(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 <= V2";

PATTERN calc.==(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bit, X_1:bit, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:blob, X_1:blob, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:bte, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.==(X_0:date, X_1:date, X_2:bit):bit;
COMMENT "Equality of two dates";

PATTERN calc.==(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.==(X_0:daytime, X_1:daytime, X_2:bit):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.==(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:dbl, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:flt, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:inet, X_1:inet, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:int, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:json, X_1:json):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:json, X_1:json, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:lng, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:oid, X_1:oid, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:bte, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:dbl, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:flt, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:int):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:int, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:lng, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:sht, X_1:sht, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:str, X_1:str):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:str, X_1:str, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.==(X_0:timestamp, X_1:timestamp, X_2:bit):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.==(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 == V2";

PATTERN calc.==(X_0:uuid, X_1:uuid, X_2:bit):bit;
COMMENT "Return V1 == V2";

PATTERN calc.>(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.>(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.>(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:int, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:json, X_1:json):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:int):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:str, X_1:str):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.>(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 > V2";

PATTERN calc.>=(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:blob, X_1:blob):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:bte, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:date, X_1:date):bit;
COMMENT "Equality of two dates";

PATTERN calc.>=(X_0:daytime, X_1:daytime):bit;
COMMENT "Equality of two daytimes";

PATTERN calc.>=(X_0:dbl, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:dbl, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:dbl, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:dbl, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:dbl, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:dbl, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:flt, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:inet, X_1:inet):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:int, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:json, X_1:json):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:lng, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:oid, X_1:oid):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:bte):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:dbl):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:flt):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:int):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:lng):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:sht, X_1:sht):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:str, X_1:str):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>=(X_0:timestamp, X_1:timestamp):bit;
COMMENT "Equality of two timestamps";

PATTERN calc.>=(X_0:uuid, X_1:uuid):bit;
COMMENT "Return V1 >= V2";

PATTERN calc.>>(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:bte, X_1:int):bte;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:bte, X_1:lng):bte;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:bte, X_1:sht):bte;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:int, X_1:bte):int;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:int, X_1:int):int;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:int, X_1:lng):int;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:int, X_1:sht):int;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:lng, X_1:bte):lng;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:lng, X_1:int):lng;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:lng, X_1:sht):lng;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:sht, X_1:bte):sht;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:sht, X_1:int):sht;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:sht, X_1:lng):sht;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.>>(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 >> V2, raise error on out of range second operand";

PATTERN calc.abs(X_0:bte):bte;
COMMENT "Unary absolute value of V";

PATTERN calc.abs(X_0:dbl):dbl;
COMMENT "Unary absolute value of V";

PATTERN calc.abs(X_0:flt):flt;
COMMENT "Unary absolute value of V";

PATTERN calc.abs(X_0:int):int;
COMMENT "Unary absolute value of V";

PATTERN calc.abs(X_0:lng):lng;
COMMENT "Unary absolute value of V";

PATTERN calc.abs(X_0:sht):sht;
COMMENT "Unary absolute value of V";

PATTERN calc.and(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 AND V2";

PATTERN calc.and(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 AND V2";

PATTERN calc.and(X_0:int, X_1:int):int;
COMMENT "Return V1 AND V2";

PATTERN calc.and(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 AND V2";

PATTERN calc.and(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 AND V2";

PATTERN calc.between(X_0:any_1, X_1:any_1, X_2:any_1, X_3:bit, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bit;
COMMENT "B between LO and HI inclusive";

PATTERN calc.bit(X_0:bit):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:bte):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:dbl):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:flt):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:int):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:lng):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:oid):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:sht):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:str):bit;
COMMENT "Cast VALUE to bit";

PATTERN calc.bit(X_0:void):bit;
COMMENT "Cast VALUE to bit";

COMMAND calc.blob(X_0:blob):blob;
COMMENT "";

COMMAND calc.blob(X_0:str):blob;
COMMENT "";

PATTERN calc.bte(X_0:bit):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:bte):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:dbl):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:flt):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:int):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:lng):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:oid):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:sht):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:str):bte;
COMMENT "Cast VALUE to bte";

PATTERN calc.bte(X_0:void):bte;
COMMENT "Cast VALUE to bte";

COMMAND calc.bte(X_0:int, X_1:bte):bte;
COMMENT "cast decimal(bte) to bte and check for overflow";

COMMAND calc.bte(X_0:int, X_1:bte, X_2:int, X_3:int):bte;
COMMENT "cast decimal(bte) to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:bte, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:dbl, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:flt, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:int, X_1:int):bte;
COMMENT "cast decimal(int) to bte and check for overflow";

COMMAND calc.bte(X_0:int, X_1:int, X_2:int, X_3:int):bte;
COMMENT "cast decimal(int) to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:int, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:int, X_1:lng):bte;
COMMENT "cast decimal(lng) to bte and check for overflow";

COMMAND calc.bte(X_0:int, X_1:lng, X_2:int, X_3:int):bte;
COMMENT "cast decimal(lng) to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:lng, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:void, X_1:int, X_2:int):bte;
COMMENT "cast to dec(bte) and check for overflow";

COMMAND calc.bte(X_0:int, X_1:sht):bte;
COMMENT "cast decimal(sht) to bte and check for overflow";

COMMAND calc.bte(X_0:int, X_1:sht, X_2:int, X_3:int):bte;
COMMENT "cast decimal(sht) to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:sht, X_1:int, X_2:int):bte;
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND calc.bte(X_0:str, X_1:int, X_2:int):bte;
COMMENT "cast to dec(bte) and check for overflow";

PATTERN calc.cmp(X_0:bit, X_1:bit):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:bte, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:dbl, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:flt, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:int, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:lng, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:oid, X_1:oid):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:bte):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:dbl):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:flt):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:int):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:lng):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:sht, X_1:sht):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

PATTERN calc.cmp(X_0:str, X_1:str):bte;
COMMENT "Return -1/0/1 if V1 </==/> V2";

COMMAND calc.date(X_0:date):date;
COMMENT "";

COMMAND calc.date(X_0:str):date;
COMMENT "";

COMMAND calc.date(X_0:timestamp):date;
COMMENT "";

PATTERN calc.date(X_0:void):date;
COMMENT "cast to date";

COMMAND calc.daytime(X_0:daytime):daytime;
COMMENT "";

COMMAND calc.daytime(X_0:lng):daytime;
COMMENT "";

COMMAND calc.daytime(X_0:str):daytime;
COMMENT "";

COMMAND calc.daytime(X_0:timestamp):daytime;
COMMENT "";

PATTERN calc.daytime(X_0:daytime, X_1:int):daytime;
COMMENT "cast daytime to daytime and check for overflow";

PATTERN calc.daytime(X_0:lng, X_1:int):daytime;
COMMENT "cast second_interval to a daytime and check for overflow";

PATTERN calc.daytime(X_0:str, X_1:int):daytime;
COMMENT "cast to daytime and check for overflow";

PATTERN calc.daytime(X_0:str, X_1:int, X_2:int):daytime;
COMMENT "cast to daytime and check for overflow";

PATTERN calc.daytime(X_0:timestamp, X_1:int):daytime;
COMMENT "cast timestamp to a daytime and check for overflow";

PATTERN calc.dbl(X_0:bit):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:bte):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:dbl):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:flt):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:int):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:lng):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:oid):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:sht):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:str):dbl;
COMMENT "Cast VALUE to dbl";

PATTERN calc.dbl(X_0:void):dbl;
COMMENT "Cast VALUE to dbl";

COMMAND calc.dbl(X_0:int, X_1:bte):dbl;
COMMENT "cast decimal(bte) to dbl and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:bte, X_2:int, X_3:int):dbl;
COMMENT "cast decimal(bte) to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:bte, X_1:int, X_2:int):dbl;
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:int):dbl;
COMMENT "cast decimal(int) to dbl and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:int, X_2:int, X_3:int):dbl;
COMMENT "cast decimal(int) to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:int, X_2:int):dbl;
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:lng):dbl;
COMMENT "cast decimal(lng) to dbl and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:lng, X_2:int, X_3:int):dbl;
COMMENT "cast decimal(lng) to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:lng, X_1:int, X_2:int):dbl;
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:sht):dbl;
COMMENT "cast decimal(sht) to dbl and check for overflow";

COMMAND calc.dbl(X_0:int, X_1:sht, X_2:int, X_3:int):dbl;
COMMENT "cast decimal(sht) to decimal(dbl) and check for overflow";

COMMAND calc.dbl(X_0:sht, X_1:int, X_2:int):dbl;
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND calc.dec_round(X_0:bte, X_1:bte):bte;
COMMENT "round off the value v to nearests multiple of r";

COMMAND calc.dec_round(X_0:dbl, X_1:dbl):dbl;
COMMENT "round off the value v to nearests multiple of r";

COMMAND calc.dec_round(X_0:flt, X_1:flt):flt;
COMMENT "round off the value v to nearests multiple of r";

COMMAND calc.dec_round(X_0:int, X_1:int):int;
COMMENT "round off the value v to nearests multiple of r";

COMMAND calc.dec_round(X_0:lng, X_1:lng):lng;
COMMENT "round off the value v to nearests multiple of r";

COMMAND calc.dec_round(X_0:sht, X_1:sht):sht;
COMMENT "round off the value v to nearests multiple of r";

PATTERN calc.flt(X_0:bit):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:bte):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:dbl):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:flt):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:int):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:lng):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:oid):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:sht):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:str):flt;
COMMENT "Cast VALUE to flt";

PATTERN calc.flt(X_0:void):flt;
COMMENT "Cast VALUE to flt";

COMMAND calc.flt(X_0:int, X_1:bte):flt;
COMMENT "cast decimal(bte) to flt and check for overflow";

COMMAND calc.flt(X_0:int, X_1:bte, X_2:int, X_3:int):flt;
COMMENT "cast decimal(bte) to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:bte, X_1:int, X_2:int):flt;
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:int, X_1:int):flt;
COMMENT "cast decimal(int) to flt and check for overflow";

COMMAND calc.flt(X_0:int, X_1:int, X_2:int, X_3:int):flt;
COMMENT "cast decimal(int) to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:int, X_1:int, X_2:int):flt;
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:int, X_1:lng):flt;
COMMENT "cast decimal(lng) to flt and check for overflow";

COMMAND calc.flt(X_0:int, X_1:lng, X_2:int, X_3:int):flt;
COMMENT "cast decimal(lng) to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:lng, X_1:int, X_2:int):flt;
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:int, X_1:sht):flt;
COMMENT "cast decimal(sht) to flt and check for overflow";

COMMAND calc.flt(X_0:int, X_1:sht, X_2:int, X_3:int):flt;
COMMENT "cast decimal(sht) to decimal(flt) and check for overflow";

COMMAND calc.flt(X_0:sht, X_1:int, X_2:int):flt;
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND calc.identity(X_0:any):oid;
COMMENT "Returns a unique row identitfier.";

PATTERN calc.ifthenelse(X_0:bit, X_1:any_1, X_2:any_1):any_1;
COMMENT "If VALUE is true return MIDDLE else RIGHT";

COMMAND calc.inet(X_0:str):inet;
COMMENT "Convert a string to an inet";

COMMAND calc.inet(X_0:inet):inet;
COMMENT "Convert a inet to an inet";

PATTERN calc.int(X_0:bit):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:bte):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:dbl):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:flt):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:int):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:lng):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:oid):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:sht):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:str):int;
COMMENT "Cast VALUE to int";

PATTERN calc.int(X_0:void):int;
COMMENT "Cast VALUE to int";

COMMAND calc.int(X_0:int, X_1:bte):int;
COMMENT "cast decimal(bte) to int and check for overflow";

COMMAND calc.int(X_0:int, X_1:bte, X_2:int, X_3:int):int;
COMMENT "cast decimal(bte) to decimal(int) and check for overflow";

COMMAND calc.int(X_0:bte, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:dbl, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:flt, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:int, X_1:int):int;
COMMENT "cast decimal(int) to int and check for overflow";

COMMAND calc.int(X_0:int, X_1:int, X_2:int, X_3:int):int;
COMMENT "cast decimal(int) to decimal(int) and check for overflow";

COMMAND calc.int(X_0:int, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:int, X_1:lng):int;
COMMENT "cast decimal(lng) to int and check for overflow";

COMMAND calc.int(X_0:int, X_1:lng, X_2:int, X_3:int):int;
COMMENT "cast decimal(lng) to decimal(int) and check for overflow";

COMMAND calc.int(X_0:lng, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:void, X_1:int, X_2:int):int;
COMMENT "cast to dec(int) and check for overflow";

COMMAND calc.int(X_0:int, X_1:sht):int;
COMMENT "cast decimal(sht) to int and check for overflow";

COMMAND calc.int(X_0:int, X_1:sht, X_2:int, X_3:int):int;
COMMENT "cast decimal(sht) to decimal(int) and check for overflow";

COMMAND calc.int(X_0:sht, X_1:int, X_2:int):int;
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND calc.int(X_0:str, X_1:int, X_2:int):int;
COMMENT "cast to dec(int) and check for overflow";

PATTERN calc.isnil(X_0:any):bit;
COMMENT "Unary check for nil of V";

PATTERN calc.isnotnil(X_0:any):bit;
COMMENT "Unary check for notnil of V";

PATTERN calc.iszero(X_0:bte):bit;
COMMENT "Unary check for zero of V";

PATTERN calc.iszero(X_0:dbl):bit;
COMMENT "Unary check for zero of V";

PATTERN calc.iszero(X_0:flt):bit;
COMMENT "Unary check for zero of V";

PATTERN calc.iszero(X_0:int):bit;
COMMENT "Unary check for zero of V";

PATTERN calc.iszero(X_0:lng):bit;
COMMENT "Unary check for zero of V";

PATTERN calc.iszero(X_0:sht):bit;
COMMENT "Unary check for zero of V";

COMMAND calc.json(X_0:json):json;
COMMENT "Convert JSON to JSON";

COMMAND calc.json(X_0:str):json;
COMMENT "Convert string to its JSON. Dealing with escape characters";

COMMAND calc.length(X_0:str):int;
COMMENT "Length of STRING";

PATTERN calc.lng(X_0:bit):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:bte):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:dbl):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:flt):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:int):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:lng):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:oid):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:sht):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:str):lng;
COMMENT "Cast VALUE to lng";

PATTERN calc.lng(X_0:void):lng;
COMMENT "Cast VALUE to lng";

COMMAND calc.lng(X_0:int, X_1:bte):lng;
COMMENT "cast decimal(bte) to lng and check for overflow";

COMMAND calc.lng(X_0:int, X_1:bte, X_2:int, X_3:int):lng;
COMMENT "cast decimal(bte) to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:bte, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:dbl, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:flt, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:int, X_1:int):lng;
COMMENT "cast decimal(int) to lng and check for overflow";

COMMAND calc.lng(X_0:int, X_1:int, X_2:int, X_3:int):lng;
COMMENT "cast decimal(int) to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:int, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:int, X_1:lng):lng;
COMMENT "cast decimal(lng) to lng and check for overflow";

COMMAND calc.lng(X_0:int, X_1:lng, X_2:int, X_3:int):lng;
COMMENT "cast decimal(lng) to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:lng, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:void, X_1:int, X_2:int):lng;
COMMENT "cast to dec(lng) and check for overflow";

COMMAND calc.lng(X_0:int, X_1:sht):lng;
COMMENT "cast decimal(sht) to lng and check for overflow";

COMMAND calc.lng(X_0:int, X_1:sht, X_2:int, X_3:int):lng;
COMMENT "cast decimal(sht) to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:sht, X_1:int, X_2:int):lng;
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND calc.lng(X_0:str, X_1:int, X_2:int):lng;
COMMENT "cast to dec(lng) and check for overflow";

PATTERN calc.max(X_0:any_1, X_1:any_1):any_1;
COMMENT "Return max of V1 and V2";

PATTERN calc.max_no_nil(X_0:any_1, X_1:any_1):any_1;
COMMENT "Return max of V1 and V2, ignoring nil values";

COMMAND calc.mbr(X_0:mbr):mbr;
COMMENT "";

COMMAND calc.mbr(X_0:str):mbr;
COMMENT "";

PATTERN calc.min(X_0:any_1, X_1:any_1):any_1;
COMMENT "Return min of V1 and V2";

PATTERN calc.min_no_nil(X_0:any_1, X_1:any_1):any_1;
COMMENT "Return min of V1 and V2, ignoring nil values";

PATTERN calc.month_interval(X_0:bte, X_1:int, X_2:int):int;
COMMENT "cast bte to a month_interval and check for overflow";

PATTERN calc.month_interval(X_0:int, X_1:int, X_2:int):int;
COMMENT "cast int to a month_interval and check for overflow";

PATTERN calc.month_interval(X_0:lng, X_1:int, X_2:int):int;
COMMENT "cast lng to a month_interval and check for overflow";

PATTERN calc.month_interval(X_0:sht, X_1:int, X_2:int):int;
COMMENT "cast sht to a month_interval and check for overflow";

PATTERN calc.month_interval(X_0:str, X_1:int, X_2:int):int;
COMMENT "cast str to a month_interval and check for overflow";

PATTERN calc.not(X_0:bit):bit;
COMMENT "Return the Boolean inverse";

PATTERN calc.not(X_0:bte):bte;
COMMENT "Unary bitwise not of V";

PATTERN calc.not(X_0:int):int;
COMMENT "Unary bitwise not of V";

PATTERN calc.not(X_0:lng):lng;
COMMENT "Unary bitwise not of V";

PATTERN calc.not(X_0:sht):sht;
COMMENT "Unary bitwise not of V";

PATTERN calc.oid(X_0:bit):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:bte):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:dbl):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:flt):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:int):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:lng):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:oid):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:sht):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:str):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.oid(X_0:void):oid;
COMMENT "Cast VALUE to oid";

PATTERN calc.or(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 OR V2";

PATTERN calc.or(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 OR V2";

PATTERN calc.or(X_0:int, X_1:int):int;
COMMENT "Return V1 OR V2";

PATTERN calc.or(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 OR V2";

PATTERN calc.or(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 OR V2";

COMMAND calc.ptr(X_0:ptr):ptr;
COMMENT "Cast VALUE to ptr";

COMMAND calc.round(X_0:bte, X_1:bte, X_2:int, X_3:int):bte;
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

COMMAND calc.round(X_0:dbl, X_1:bte):dbl;
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

COMMAND calc.round(X_0:flt, X_1:bte):flt;
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

COMMAND calc.round(X_0:int, X_1:bte, X_2:int, X_3:int):int;
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

COMMAND calc.round(X_0:lng, X_1:bte, X_2:int, X_3:int):lng;
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

COMMAND calc.round(X_0:sht, X_1:bte, X_2:int, X_3:int):sht;
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN calc.rowid(X_0:any_1, X_1:str, X_2:str):oid;
COMMENT "return the next rowid";

COMMAND calc.second_interval(X_0:int, X_1:bte, X_2:int, X_3:int):lng;
COMMENT "cast bte decimal to a second_interval";

COMMAND calc.second_interval(X_0:int, X_1:int, X_2:int, X_3:int):lng;
COMMENT "cast int decimal to a second_interval";

COMMAND calc.second_interval(X_0:int, X_1:lng, X_2:int, X_3:int):lng;
COMMENT "cast lng decimal to a second_interval";

PATTERN calc.second_interval(X_0:bte, X_1:int, X_2:int):lng;
COMMENT "cast bte to a second_interval and check for overflow";

PATTERN calc.second_interval(X_0:int, X_1:int, X_2:int):lng;
COMMENT "cast int to a second_interval and check for overflow";

PATTERN calc.second_interval(X_0:lng, X_1:int, X_2:int):lng;
COMMENT "cast lng to a second_interval and check for overflow";

PATTERN calc.second_interval(X_0:sht, X_1:int, X_2:int):lng;
COMMENT "cast sht to a second_interval and check for overflow";

PATTERN calc.second_interval(X_0:daytime, X_1:int, X_2:int):lng;
COMMENT "cast daytime to a second_interval and check for overflow";

PATTERN calc.second_interval(X_0:str, X_1:int, X_2:int):lng;
COMMENT "cast str to a second_interval and check for overflow";

COMMAND calc.second_interval(X_0:int, X_1:sht, X_2:int, X_3:int):lng;
COMMENT "cast sht decimal to a second_interval";

PATTERN calc.sht(X_0:bit):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:bte):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:dbl):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:flt):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:int):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:lng):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:oid):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:sht):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:str):sht;
COMMENT "Cast VALUE to sht";

PATTERN calc.sht(X_0:void):sht;
COMMENT "Cast VALUE to sht";

COMMAND calc.sht(X_0:int, X_1:bte):sht;
COMMENT "cast decimal(bte) to sht and check for overflow";

COMMAND calc.sht(X_0:int, X_1:bte, X_2:int, X_3:int):sht;
COMMENT "cast decimal(bte) to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:bte, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:dbl, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:flt, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:int, X_1:int):sht;
COMMENT "cast decimal(int) to sht and check for overflow";

COMMAND calc.sht(X_0:int, X_1:int, X_2:int, X_3:int):sht;
COMMENT "cast decimal(int) to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:int, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:int, X_1:lng):sht;
COMMENT "cast decimal(lng) to sht and check for overflow";

COMMAND calc.sht(X_0:int, X_1:lng, X_2:int, X_3:int):sht;
COMMENT "cast decimal(lng) to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:lng, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:void, X_1:int, X_2:int):sht;
COMMENT "cast to dec(sht) and check for overflow";

COMMAND calc.sht(X_0:int, X_1:sht):sht;
COMMENT "cast decimal(sht) to sht and check for overflow";

COMMAND calc.sht(X_0:int, X_1:sht, X_2:int, X_3:int):sht;
COMMENT "cast decimal(sht) to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:sht, X_1:int, X_2:int):sht;
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND calc.sht(X_0:str, X_1:int, X_2:int):sht;
COMMENT "cast to dec(sht) and check for overflow";

PATTERN calc.sign(X_0:bte):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.sign(X_0:dbl):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.sign(X_0:flt):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.sign(X_0:int):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.sign(X_0:lng):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.sign(X_0:sht):bte;
COMMENT "Unary sign (-1,0,1) of V";

PATTERN calc.str(X_0:any):str;
COMMENT "Cast VALUE to str";

PATTERN calc.str(X_0:int, X_1:int, X_2:int, X_3:int, X_4:any_1, X_5:int):str;
COMMENT "cast to string and check for overflow";

COMMAND calc.str(X_0:uuid):str;
COMMENT "Coerce a uuid to a string type";

COMMAND calc.timestamp(X_0:date):timestamp;
COMMENT "";

COMMAND calc.timestamp(X_0:lng):timestamp;
COMMENT "";

COMMAND calc.timestamp(X_0:int):timestamp;
COMMENT "";

COMMAND calc.timestamp(X_0:str):timestamp;
COMMENT "";

COMMAND calc.timestamp(X_0:timestamp):timestamp;
COMMENT "";

PATTERN calc.timestamp(X_0:date, X_1:int):timestamp;
COMMENT "cast date to a timestamp and check for overflow";

PATTERN calc.timestamp(X_0:void, X_1:int):timestamp;
COMMENT "cast to timestamp and check for overflow";

PATTERN calc.timestamp(X_0:str, X_1:int):timestamp;
COMMENT "cast to timestamp and check for overflow";

PATTERN calc.timestamp(X_0:str, X_1:int, X_2:int):timestamp;
COMMENT "cast to timestamp and check for overflow";

PATTERN calc.timestamp(X_0:timestamp, X_1:int):timestamp;
COMMENT "cast timestamp to timestamp and check for overflow";

COMMAND calc.url(X_0:str):url;
COMMENT "Create an URL from a string literal";

COMMAND calc.url(X_0:url):url;
COMMENT "Create an URL from a string literal";

COMMAND calc.uuid(X_0:str):uuid;
COMMENT "Coerce a string to a uuid, validating its format";

COMMAND calc.uuid(X_0:uuid):uuid;
COMMENT "";

PATTERN calc.void(X_0:bit):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:bte):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:dbl):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:flt):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:int):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:lng):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:oid):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:sht):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:str):void;
COMMENT "Cast VALUE to void";

PATTERN calc.void(X_0:void):void;
COMMENT "Cast VALUE to void";

function calc.wkb(wkt:str, srid:int, type:int):wkb;;
COMMENT "";

COMMAND calc.wkb(X_0:wkb, X_1:int, X_2:int):wkb;
COMMENT "Called when inserting values to a table in order to check if the inserted geometries are of the same type and srid required by the column definition";

COMMAND calc.wkb(X_0:wkb):wkb;
COMMENT "It is called when adding a new geometry column to an existing table";

COMMAND calc.xml(X_0:str):xml;
COMMENT "";

COMMAND calc.xml(X_0:xml):xml;
COMMENT "";

PATTERN calc.xor(X_0:bit, X_1:bit):bit;
COMMENT "Return V1 XOR V2";

PATTERN calc.xor(X_0:bte, X_1:bte):bte;
COMMENT "Return V1 XOR V2";

PATTERN calc.xor(X_0:int, X_1:int):int;
COMMENT "Return V1 XOR V2";

PATTERN calc.xor(X_0:lng, X_1:lng):lng;
COMMENT "Return V1 XOR V2";

PATTERN calc.xor(X_0:sht, X_1:sht):sht;
COMMENT "Return V1 XOR V2";
``````

Batcalc module

``````MODULE batcalc;

PATTERN batcalc.!=(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:any_1, X_1:bat[:any_1], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:any_1, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:bte], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:bat[:date], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:date, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:date], X_1:date, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:daytime], X_1:daytime, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:bat[:inet], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:inet, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:inet], X_1:inet, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:int], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:bat[:json], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:json, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:json], X_1:json, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:lng], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:sht], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:timestamp], X_1:timestamp, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bat[:uuid], X_1:uuid, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:bte, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:date, X_1:bat[:date], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:date, X_1:bat[:date], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:daytime, X_1:bat[:daytime], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:inet, X_1:bat[:inet], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:inet, X_1:bat[:inet], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:int, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:json, X_1:bat[:json], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:json, X_1:bat[:json], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:lng, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:sht, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:timestamp, X_1:bat[:timestamp], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.!=(X_0:uuid, X_1:bat[:uuid], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.%(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.%(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.*(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:str];
COMMENT "Return concatenation of B1 and B2 with candidates list";

PATTERN batcalc.+(X_0:bat[:str], X_1:str, X_2:bat[:oid]):bat[:str];
COMMENT "Return concatenation of B and V with candidates list";

PATTERN batcalc.+(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.+(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.+(X_0:str, X_1:bat[:str], X_2:bat[:oid]):bat[:str];
COMMENT "Return concatenation of V and B with candidates list";

PATTERN batcalc.++(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.++(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.-(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.--(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc./(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:bte]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:lng]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:sht]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bte):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:lng):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:sht):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:bte]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:int]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:sht]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bte):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:int):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:sht):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:bte]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:int]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:lng]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bte):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:int):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:lng):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:bte]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:lng]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:sht]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:bte]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:int]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:sht]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:bte]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:int]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:lng]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.<<(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.<=(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.<=(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:any_1, X_1:bat[:any_1], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:any_1, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:bte], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:bat[:date], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:date, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:date], X_1:date, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:daytime], X_1:daytime, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:bat[:inet], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:inet, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:inet], X_1:inet, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:int], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:bat[:json], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:json, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:json], X_1:json, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:sht, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:lng], X_1:sht, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bte, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:bte, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:int, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:int, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:lng, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:sht], X_1:lng, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:timestamp], X_1:timestamp, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid], X_4:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bat[:uuid], X_1:uuid, X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:bte, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:date, X_1:bat[:date], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:date, X_1:bat[:date], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:daytime, X_1:bat[:daytime], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:inet, X_1:bat[:inet], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:inet, X_1:bat[:inet], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:int, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:json, X_1:bat[:json], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:json, X_1:bat[:json], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:sht], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:lng, X_1:bat[:sht], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:bte], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:bte], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:int], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:int], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:lng], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:sht, X_1:bat[:lng], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:timestamp, X_1:bat[:timestamp], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid], X_3:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.==(X_0:uuid, X_1:bat[:uuid], X_2:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:any_1, X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:any_1], X_1:any_1):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:date], X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:date], X_1:bat[:date], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:date], X_1:date):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:date], X_1:date, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:daytime], X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:daytime], X_1:bat[:daytime], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:daytime], X_1:daytime):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:daytime], X_1:daytime, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:inet], X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:inet], X_1:bat[:inet], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:inet], X_1:inet):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:inet], X_1:inet, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:json], X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:json], X_1:bat[:json], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:json], X_1:json):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:json], X_1:json, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:sht):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bte):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:int):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:lng):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:timestamp], X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:timestamp], X_1:bat[:timestamp], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:timestamp], X_1:timestamp):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:timestamp], X_1:timestamp, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:uuid], X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:uuid], X_1:bat[:uuid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:uuid], X_1:uuid):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bat[:uuid], X_1:uuid, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:date, X_1:bat[:date]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:date, X_1:bat[:date], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:daytime, X_1:bat[:daytime]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:daytime, X_1:bat[:daytime], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:inet, X_1:bat[:inet]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:inet, X_1:bat[:inet], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:json, X_1:bat[:json]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:json, X_1:bat[:json], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:timestamp, X_1:bat[:timestamp]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:timestamp, X_1:bat[:timestamp], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:uuid, X_1:bat[:uuid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>=(X_0:uuid, X_1:bat[:uuid], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:bte]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:lng]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:sht]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bte):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:lng):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:sht):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:bte]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:int]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:sht]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bte):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:int):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:sht):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:bte]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:int]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:lng]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bte):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:int):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:lng):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:bte]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:lng]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:sht]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:bte]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:int]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:sht]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:bte]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:int]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:lng]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.>>(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.abs(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bit], X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bit], X_1:bat[:bit], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bit], X_1:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bit], X_1:bit, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:dbl], X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:dbl], X_1:dbl):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:flt], X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:flt], X_1:flt):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:bit, X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bit, X_1:bat[:bit], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.and(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.and(X_0:dbl, X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.and(X_0:flt, X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.and(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.and(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.and(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.and(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:bte], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:dbl], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:flt], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:int], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:lng], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht]) (X_1:dbl, X_2:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:bat[:oid]) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:bat[:oid]):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:int) (X_3:dbl, X_4:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:bat[:oid], X_2:int):dbl;
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:int) (X_2:dbl, X_3:lng);
COMMENT "";

PATTERN batcalc.avg(X_0:bat[:sht], X_1:int):dbl;
COMMENT "";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:any_1, X_2:any_1, X_3:bat[:oid], X_4:bit, X_5:bit, X_6:bit, X_7:bit, X_8:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa) with candidates list";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:any_1, X_2:any_1, X_3:bit, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa)";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:any_1, X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:bit, X_8:bit, X_9:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa) with candidates list";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:any_1, X_2:bat[:any_1], X_3:bit, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa)";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:bat[:any_1], X_2:any_1, X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:bit, X_8:bit, X_9:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa) with candidates list";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:bat[:any_1], X_2:any_1, X_3:bit, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa)";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:bit, X_8:bit, X_9:bit, X_10:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa) with candidates list";

PATTERN batcalc.between(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:any_1], X_3:bit, X_4:bit, X_5:bit, X_6:bit, X_7:bit):bat[:bit];
COMMENT "B between V1 and V2 (or vice versa)";

PATTERN batcalc.bit(X_0:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:bit], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:bte], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:dbl]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:dbl], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:flt]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:flt], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:int], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:lng], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:oid], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:sht], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:str]):bat[:bit];
COMMENT "";

PATTERN batcalc.bit(X_0:bat[:str], X_1:bat[:oid]):bat[:bit];
COMMENT "";

COMMAND batcalc.blob(X_0:bat[:blob], X_1:bat[:oid]):bat[:blob];
COMMENT "";

COMMAND batcalc.blob(X_0:bat[:str], X_1:bat[:oid]):bat[:blob];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:bit]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:bit], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:dbl], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:flt], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:int], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:lng], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:oid], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:sht], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:str]):bat[:bte];
COMMENT "";

PATTERN batcalc.bte(X_0:bat[:str], X_1:bat[:oid]):bat[:bte];
COMMENT "";

COMMAND batcalc.bte(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "cast decimal(bte) to bte and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "cast decimal(bte) to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:dbl], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:flt], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "cast decimal(int) to bte and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "cast decimal(int) to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "cast decimal(lng) to bte and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "cast decimal(lng) to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:oid], X_1:int, X_2:int):bat[:bte];
COMMENT "cast to dec(bte) and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "cast decimal(sht) to bte and check for overflow";

COMMAND batcalc.bte(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "cast decimal(sht) to decimal(bte) and check for overflow";

COMMAND batcalc.bte(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast number to decimal(bte) and check for overflow";

PATTERN batcalc.bte(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:bte];
COMMENT "cast to dec(bte) and check for overflow";

PATTERN batcalc.cmp(X_0:bat[:bit], X_1:bat[:bit]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bit], X_1:bat[:bit], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bit], X_1:bit):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bit], X_1:bit, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:bte], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:dbl], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:flt], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:int], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:lng], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:oid], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:oid], X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:oid], X_1:oid):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:oid], X_1:oid, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:dbl):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:dbl, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:flt):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:flt, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:int):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:int, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:lng):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:lng, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:sht):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:str], X_1:bat[:str]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:str], X_1:str):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bat[:str], X_1:str, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bit, X_1:bat[:bit]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bit, X_1:bat[:bit], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:bte, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:dbl, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:flt, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:lng, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:oid, X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:oid, X_1:bat[:oid], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:dbl], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:flt], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:int], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:lng], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:str, X_1:bat[:str]):bat[:bte];
COMMENT "";

PATTERN batcalc.cmp(X_0:str, X_1:bat[:str], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.date(X_0:bat[:date], X_1:bat[:oid]):bat[:date];
COMMENT "";

PATTERN batcalc.date(X_0:bat[:str], X_1:bat[:oid]):bat[:date];
COMMENT "";

PATTERN batcalc.date(X_0:bat[:timestamp], X_1:bat[:oid]):bat[:date];
COMMENT "";

PATTERN batcalc.date(X_0:bat[:oid]):bat[:date];
COMMENT "cast to date";

PATTERN batcalc.daytime(X_0:bat[:daytime], X_1:bat[:oid]):bat[:daytime];
COMMENT "";

PATTERN batcalc.daytime(X_0:bat[:lng], X_1:bat[:oid]):bat[:daytime];
COMMENT "";

PATTERN batcalc.daytime(X_0:bat[:str], X_1:bat[:oid]):bat[:daytime];
COMMENT "";

PATTERN batcalc.daytime(X_0:bat[:timestamp], X_1:bat[:oid]):bat[:daytime];
COMMENT "";

COMMAND batcalc.daytime(X_0:bat[:str], X_1:bat[:oid], X_2:int):bat[:daytime];
COMMENT "cast to daytime and check for overflow";

PATTERN batcalc.daytime(X_0:bat[:daytime], X_1:bat[:oid], X_2:int):bat[:daytime];
COMMENT "cast daytime to daytime and check for overflow";

PATTERN batcalc.daytime(X_0:bat[:oid], X_1:int):bat[:daytime];
COMMENT "cast to daytime and check for overflow";

PATTERN batcalc.daytime(X_0:bat[:lng], X_1:bat[:oid], X_2:int):bat[:daytime];
COMMENT "cast second_interval to a daytime and check for overflow";

PATTERN batcalc.daytime(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:daytime];
COMMENT "cast daytime to daytime and check for overflow";

PATTERN batcalc.daytime(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:daytime];
COMMENT "cast timestamp to a daytime and check for overflow";

PATTERN batcalc.dbl(X_0:bat[:bit]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:bit], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:bte]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:bte], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:flt]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:flt], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:int]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:int], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:lng]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:lng], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:oid], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:sht]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:sht], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:str]):bat[:dbl];
COMMENT "";

PATTERN batcalc.dbl(X_0:bat[:str], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "cast decimal(bte) to dbl and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:dbl];
COMMENT "cast decimal(bte) to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:dbl];
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:dbl];
COMMENT "cast decimal(int) to dbl and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:dbl];
COMMENT "cast decimal(int) to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:dbl];
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:dbl];
COMMENT "cast decimal(lng) to dbl and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:dbl];
COMMENT "cast decimal(lng) to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:dbl];
COMMENT "cast number to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:dbl];
COMMENT "cast decimal(sht) to dbl and check for overflow";

COMMAND batcalc.dbl(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:dbl];
COMMENT "cast decimal(sht) to decimal(dbl) and check for overflow";

COMMAND batcalc.dbl(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:dbl];
COMMENT "cast number to decimal(dbl) and check for overflow";

PATTERN batcalc.dec_round(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:dbl], X_1:dbl):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:dbl, X_1:bat[:dbl]):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:dbl], X_1:bat[:dbl]):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:flt], X_1:flt):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:flt, X_1:bat[:flt]):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:flt], X_1:bat[:flt]):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.dec_round(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "round off the value v to nearests multiple of r";

PATTERN batcalc.flt(X_0:bat[:bit]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:bit], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:bte]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:bte], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:dbl]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:dbl], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:int]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:int], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:lng]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:lng], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:oid], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:sht]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:sht], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:str]):bat[:flt];
COMMENT "";

PATTERN batcalc.flt(X_0:bat[:str], X_1:bat[:oid]):bat[:flt];
COMMENT "";

COMMAND batcalc.flt(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "cast decimal(bte) to flt and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:flt];
COMMENT "cast decimal(bte) to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:flt];
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:flt];
COMMENT "cast decimal(int) to flt and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:flt];
COMMENT "cast decimal(int) to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:flt];
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:flt];
COMMENT "cast decimal(lng) to flt and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:flt];
COMMENT "cast decimal(lng) to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:flt];
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:flt];
COMMENT "cast decimal(sht) to flt and check for overflow";

COMMAND batcalc.flt(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:flt];
COMMENT "cast decimal(sht) to decimal(flt) and check for overflow";

COMMAND batcalc.flt(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:flt];
COMMENT "cast number to decimal(flt) and check for overflow";

COMMAND batcalc.identity(X_0:bat[:any]):bat[:oid];
COMMENT "Returns the unique row identitfiers.";

PATTERN batcalc.identity(X_0:bat[:any], X_1:oid) (X_2:bat[:oid], X_3:oid);
COMMENT "Returns the unique row identitfiers.";

PATTERN batcalc.ifthenelse(X_0:bat[:bit], X_1:any_1, X_2:any_1):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bat[:bit], X_1:any_1, X_2:bat[:any_1]):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bat[:bit], X_1:bat[:any_1], X_2:any_1):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bat[:bit], X_1:bat[:any_1], X_2:bat[:any_1]):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bit, X_1:any_1, X_2:bat[:any_1]):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bit, X_1:bat[:any_1], X_2:any_1):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.ifthenelse(X_0:bit, X_1:bat[:any_1], X_2:bat[:any_1]):bat[:any_1];
COMMENT "If-then-else operation to assemble a conditional result";

PATTERN batcalc.int(X_0:bat[:bit]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:bit], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:bte]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:bte], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:dbl]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:dbl], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:flt]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:flt], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:lng]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:lng], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:oid], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:sht]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:sht], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:str]):bat[:int];
COMMENT "";

PATTERN batcalc.int(X_0:bat[:str], X_1:bat[:oid]):bat[:int];
COMMENT "";

COMMAND batcalc.int(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:int];
COMMENT "cast decimal(bte) to int and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "cast decimal(bte) to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:dbl], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:flt], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "cast decimal(int) to int and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "cast decimal(int) to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:int];
COMMENT "cast decimal(lng) to int and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "cast decimal(lng) to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:oid], X_1:int, X_2:int):bat[:int];
COMMENT "cast to dec(int) and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:int];
COMMENT "cast decimal(sht) to int and check for overflow";

COMMAND batcalc.int(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "cast decimal(sht) to decimal(int) and check for overflow";

COMMAND batcalc.int(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast number to decimal(int) and check for overflow";

PATTERN batcalc.int(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast to dec(int) and check for overflow";

PATTERN batcalc.isnil(X_0:bat[:any]):bat[:bit];
COMMENT "Unary check for nil over the tail of the bat";

PATTERN batcalc.isnil(X_0:bat[:any], X_1:bat[:oid]):bat[:bit];
COMMENT "Unary check for nil over the tail of the bat with candidates list";

PATTERN batcalc.isnotnil(X_0:bat[:any]):bat[:bit];
COMMENT "Unary check for notnil over the tail of the bat";

PATTERN batcalc.isnotnil(X_0:bat[:any], X_1:bat[:oid]):bat[:bit];
COMMENT "Unary check for notnil over the tail of the bat with candidates list";

PATTERN batcalc.iszero(X_0:bat[:bte]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:bte], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:dbl]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:dbl], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:flt]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:flt], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:int]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:int], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:lng]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:lng], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:sht]):bat[:bit];
COMMENT "";

PATTERN batcalc.iszero(X_0:bat[:sht], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:bit]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:bit], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:bte]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:bte], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:dbl]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:dbl], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:flt]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:flt], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:int]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:int], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:oid], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:sht]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:sht], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:str]):bat[:lng];
COMMENT "";

PATTERN batcalc.lng(X_0:bat[:str], X_1:bat[:oid]):bat[:lng];
COMMENT "";

COMMAND batcalc.lng(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:lng];
COMMENT "cast decimal(bte) to lng and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast decimal(bte) to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:dbl], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:flt], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:lng];
COMMENT "cast decimal(int) to lng and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast decimal(int) to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "cast decimal(lng) to lng and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast decimal(lng) to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:oid], X_1:int, X_2:int):bat[:lng];
COMMENT "cast to dec(lng) and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:lng];
COMMENT "cast decimal(sht) to lng and check for overflow";

COMMAND batcalc.lng(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast decimal(sht) to decimal(lng) and check for overflow";

COMMAND batcalc.lng(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast number to decimal(lng) and check for overflow";

PATTERN batcalc.lng(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast to dec(lng) and check for overflow";

PATTERN batcalc.max(X_0:any_1, X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max(X_0:bat[:any_1], X_1:any_1):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs";

PATTERN batcalc.max_no_nil(X_0:any_1, X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.max_no_nil(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.max_no_nil(X_0:bat[:any_1], X_1:any_1):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.max_no_nil(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.max_no_nil(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.max_no_nil(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:any_1];
COMMENT "Return bat with maximum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min(X_0:any_1, X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min(X_0:bat[:any_1], X_1:any_1):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs";

PATTERN batcalc.min_no_nil(X_0:any_1, X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min_no_nil(X_0:any_1, X_1:bat[:any_1], X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min_no_nil(X_0:bat[:any_1], X_1:any_1):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min_no_nil(X_0:bat[:any_1], X_1:any_1, X_2:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min_no_nil(X_0:bat[:any_1], X_1:bat[:any_1]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.min_no_nil(X_0:bat[:any_1], X_1:bat[:any_1], X_2:bat[:oid], X_3:bat[:oid]):bat[:any_1];
COMMENT "Return bat with minimum value of each pair of inputs, ignoring nil values";

PATTERN batcalc.month_interval(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast bte to a month_interval and check for overflow";

PATTERN batcalc.month_interval(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast int to a month_interval and check for overflow";

PATTERN batcalc.month_interval(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast lng to a month_interval and check for overflow";

PATTERN batcalc.month_interval(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast sht to a month_interval and check for overflow";

PATTERN batcalc.month_interval(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:int];
COMMENT "cast str to a month_interval and check for overflow";

PATTERN batcalc.not(X_0:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:bit], X_1:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:dbl], X_1:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:flt], X_1:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:int], X_1:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:lng], X_1:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.not(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:bit]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:bit], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:bte]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:bte], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:dbl]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:dbl], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:flt]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:flt], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:int]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:int], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:lng]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:lng], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:oid], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:sht]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:sht], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:str]):bat[:oid];
COMMENT "";

PATTERN batcalc.oid(X_0:bat[:str], X_1:bat[:oid]):bat[:oid];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bit], X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bit], X_1:bat[:bit], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bit], X_1:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bit], X_1:bit, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:dbl], X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:dbl], X_1:dbl):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:flt], X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:flt], X_1:flt):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "";

PATTERN batcalc.or(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.or(X_0:bit, X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bit, X_1:bat[:bit], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.or(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.or(X_0:dbl, X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.or(X_0:flt, X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.or(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.or(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.or(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.or(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.round(X_0:bat[:bte], X_1:bte, X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:bte], X_1:bte, X_2:int, X_3:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bte, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bte, X_1:bat[:bte], X_2:int, X_3:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:bte], X_1:bat[:bte], X_2:int, X_3:int):bat[:bte];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:dbl], X_1:bte):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:dbl], X_1:bte, X_2:bat[:oid]):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:dbl, X_1:bat[:bte]):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:dbl, X_1:bat[:bte], X_2:bat[:oid]):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:dbl], X_1:bat[:bte]):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:dbl], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:flt], X_1:bte):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:flt], X_1:bte, X_2:bat[:oid]):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:flt, X_1:bat[:bte]):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:flt, X_1:bat[:bte], X_2:bat[:oid]):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:flt], X_1:bat[:bte]):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:flt], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "round off the floating point v to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:int], X_1:bte, X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:int], X_1:bte, X_2:int, X_3:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:int, X_1:bat[:bte], X_2:int, X_3:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:int], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:int], X_1:bat[:bte], X_2:int, X_3:int):bat[:int];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:lng], X_1:bte, X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:lng], X_1:bte, X_2:int, X_3:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:lng, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:lng, X_1:bat[:bte], X_2:int, X_3:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:lng], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:lng], X_1:bat[:bte], X_2:int, X_3:int):bat[:lng];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:sht], X_1:bte, X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:sht], X_1:bte, X_2:int, X_3:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:sht, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:sht, X_1:bat[:bte], X_2:int, X_3:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:sht], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid], X_4:int, X_5:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.round(X_0:bat[:sht], X_1:bat[:bte], X_2:int, X_3:int):bat[:sht];
COMMENT "round off the decimal v(d,s) to r digits behind the dot (if r < 0, before the dot)";

PATTERN batcalc.second_interval(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast bte decimal to a second_interval";

PATTERN batcalc.second_interval(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast int decimal to a second_interval";

PATTERN batcalc.second_interval(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast lng decimal to a second_interval";

PATTERN batcalc.second_interval(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast bte to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast int to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast lng to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast sht to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:bat[:daytime], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast daytime to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:lng];
COMMENT "cast str to a second_interval and check for overflow";

PATTERN batcalc.second_interval(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:lng];
COMMENT "cast sht decimal to a second_interval";

PATTERN batcalc.sht(X_0:bat[:bit]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:bit], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:bte]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:bte], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:dbl]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:dbl], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:flt]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:flt], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:int]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:int], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:lng]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:lng], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:oid], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:sht], X_1:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:str]):bat[:sht];
COMMENT "";

PATTERN batcalc.sht(X_0:bat[:str], X_1:bat[:oid]):bat[:sht];
COMMENT "";

COMMAND batcalc.sht(X_0:int, X_1:bat[:bte], X_2:bat[:oid]):bat[:sht];
COMMENT "cast decimal(bte) to sht and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:bte], X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "cast decimal(bte) to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:bte], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:dbl], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:flt], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:sht];
COMMENT "cast decimal(int) to sht and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:int], X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "cast decimal(int) to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:int], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:lng], X_2:bat[:oid]):bat[:sht];
COMMENT "cast decimal(lng) to sht and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:lng], X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "cast decimal(lng) to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:lng], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:oid], X_1:int, X_2:int):bat[:sht];
COMMENT "cast to dec(sht) and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "cast decimal(sht) to sht and check for overflow";

COMMAND batcalc.sht(X_0:int, X_1:bat[:sht], X_2:bat[:oid], X_3:int, X_4:int):bat[:sht];
COMMENT "cast decimal(sht) to decimal(sht) and check for overflow";

COMMAND batcalc.sht(X_0:bat[:sht], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast number to decimal(sht) and check for overflow";

PATTERN batcalc.sht(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:sht];
COMMENT "cast to dec(sht) and check for overflow";

PATTERN batcalc.sign(X_0:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:bte], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:dbl]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:dbl], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:flt]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:flt], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:int]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:int], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:lng]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:lng], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:sht]):bat[:bte];
COMMENT "";

PATTERN batcalc.sign(X_0:bat[:sht], X_1:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.str(X_0:bat[:any]):bat[:str];
COMMENT "";

PATTERN batcalc.str(X_0:bat[:any], X_1:bat[:oid]):bat[:str];
COMMENT "";

PATTERN batcalc.str(X_0:int, X_1:int, X_2:int, X_3:int, X_4:bat[:any_1], X_5:bat[:oid], X_6:int):bat[:str];
COMMENT "cast to string and check for overflow";

COMMAND batcalc.str(X_0:bat[:uuid], X_1:bat[:oid]):bat[:str];
COMMENT "Coerce a uuid to a string type";

PATTERN batcalc.timestamp(X_0:bat[:date], X_1:bat[:oid]):bat[:timestamp];
COMMENT "";

PATTERN batcalc.timestamp(X_0:bat[:lng], X_1:bat[:oid]):bat[:timestamp];
COMMENT "";

PATTERN batcalc.timestamp(X_0:bat[:int], X_1:bat[:oid]):bat[:timestamp];
COMMENT "";

PATTERN batcalc.timestamp(X_0:bat[:str], X_1:bat[:oid]):bat[:timestamp];
COMMENT "";

PATTERN batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid]):bat[:timestamp];
COMMENT "";

COMMAND batcalc.timestamp(X_0:bat[:str], X_1:bat[:oid], X_2:int):bat[:timestamp];
COMMENT "cast to timestamp and check for overflow";

COMMAND batcalc.timestamp(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:timestamp];
COMMENT "cast to timestamp and check for overflow";

PATTERN batcalc.timestamp(X_0:bat[:date], X_1:bat[:oid], X_2:int):bat[:timestamp];
COMMENT "cast date to a timestamp and check for overflow";

PATTERN batcalc.timestamp(X_0:bat[:oid], X_1:int):bat[:timestamp];
COMMENT "cast to timestamp and check for overflow";

PATTERN batcalc.timestamp(X_0:bat[:oid], X_1:int, X_2:bat[:BAT]):bat[:timestamp];
COMMENT "cast to timestamp and check for overflow";

PATTERN batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:timestamp];
COMMENT "cast timestamp to timestamp and check for overflow";

COMMAND batcalc.uuid(X_0:bat[:str], X_1:bat[:oid]):bat[:uuid];
COMMENT "Coerce a string to a uuid, validating its format";

COMMAND batcalc.uuid(X_0:bat[:uuid], X_1:bat[:oid]):bat[:uuid];
COMMENT "";

COMMAND batcalc.wkb(X_0:bat[:wkb], X_1:bat[:oid], X_2:int, X_3:int):bat[:wkb];
COMMENT "Called when inserting values to a table in order to check if the inserted geometries are of the same type and srid required by the column definition";

COMMAND batcalc.wkb(X_0:bat[:str], X_1:bat[:oid], X_2:int, X_3:int):bat[:wkb];
COMMENT "";

COMMAND batcalc.xml(X_0:bat[:str]):bat[:xml];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bit], X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bit], X_1:bat[:bit], X_2:bat[:oid], X_3:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bit], X_1:bit):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bit], X_1:bit, X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bte], X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bte], X_1:bat[:bte], X_2:bat[:oid], X_3:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bte], X_1:bte):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:bte], X_1:bte, X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:dbl], X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:dbl], X_1:bat[:dbl], X_2:bat[:oid], X_3:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:dbl], X_1:dbl):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:dbl], X_1:dbl, X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:flt], X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:flt], X_1:bat[:flt], X_2:bat[:oid], X_3:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:flt], X_1:flt):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:flt], X_1:flt, X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:int], X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:int], X_1:bat[:int], X_2:bat[:oid], X_3:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:int], X_1:int):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:int], X_1:int, X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:lng], X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:lng], X_1:bat[:lng], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:lng], X_1:lng):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:lng], X_1:lng, X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:sht], X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:sht], X_1:bat[:sht], X_2:bat[:oid], X_3:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:sht], X_1:sht):bat[:sht];
COMMENT "";

PATTERN batcalc.xor(X_0:bat[:sht], X_1:sht, X_2:bat[:oid]):bat[:sht];
COMMENT "";

PATTERN batcalc.xor(X_0:bit, X_1:bat[:bit]):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bit, X_1:bat[:bit], X_2:bat[:oid]):bat[:bit];
COMMENT "";

PATTERN batcalc.xor(X_0:bte, X_1:bat[:bte]):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:bte, X_1:bat[:bte], X_2:bat[:oid]):bat[:bte];
COMMENT "";

PATTERN batcalc.xor(X_0:dbl, X_1:bat[:dbl]):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:dbl, X_1:bat[:dbl], X_2:bat[:oid]):bat[:dbl];
COMMENT "";

PATTERN batcalc.xor(X_0:flt, X_1:bat[:flt]):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:flt, X_1:bat[:flt], X_2:bat[:oid]):bat[:flt];
COMMENT "";

PATTERN batcalc.xor(X_0:int, X_1:bat[:int]):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:int, X_1:bat[:int], X_2:bat[:oid]):bat[:int];
COMMENT "";

PATTERN batcalc.xor(X_0:lng, X_1:bat[:lng]):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:lng, X_1:bat[:lng], X_2:bat[:oid]):bat[:lng];
COMMENT "";

PATTERN batcalc.xor(X_0:sht, X_1:bat[:sht]):bat[:sht];
COMMENT "";

PATTERN batcalc.xor(X_0:sht, X_1:bat[:sht], X_2:bat[:oid]):bat[:sht];
COMMENT "";
``````