DEFINITION MODULE Safe;
PROCEDURE AbsInt(lSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE NegInt(lSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE AddInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE AddCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE SubInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE SubCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE DivInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE DivInt4Q(lop,rop : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE DivCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE SlashI(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE SlashC(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE ModInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE ModInt4Q(lop,rop : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE ModCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE RemInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE RemCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
PROCEDURE MulInt(lSrc,rSrc : INTEGER;
VAR dst : INTEGER;
VAR fail : BOOLEAN);
PROCEDURE MulCrd(lSrc,rSrc : CARDINAL;
VAR dst : CARDINAL;
VAR fail : BOOLEAN);
END Safe.