ADD =
num1 =>
num2 =>
(qtyFn1 => qtyFn2 =>
lib.IS_POS(num1)
(lib.IS_POS(num2)
(lib.NUMBER(lib.TRUE)(ADD_MAGNITUDES(qtyFn1)(qtyFn2)))
(IS_LTE(num1)(num2)
(lib.NUMBER(lib.TRUE)(SUBTRACT_MAGNITUDES(qtyFn1)(qtyFn2)))
(lib.NUMBER(lib.FALSE)(SUBTRACT_MAGNITUDES(qtyFn2)(qtyFn1)))))
(lib.IS_POS(num2)
(IS_LTE(num1)(num2)
(lib.NUMBER(lib.TRUE)(SUBTRACT_MAGNITUDES(qtyFn2)(qtyFn1)))
(lib.NUMBER(lib.FALSE)(SUBTRACT_MAGNITUDES(qtyFn1)(qtyFn2))))
(lib.NUMBER(lib.FALSE)(ADD_MAGNITUDES(qtyFn1)(qtyFn2))))
)
(lib.ABS(num1))
(lib.ABS(num2))