LetExp([ FunctionDec[ (printint,[ (i,false,int)], NONE, LetExp([ FunctionDec[ (f,[ (i,false,int)], NONE, IfExp( OpExp(GtOp, VarExp( SimpleVar(i)), IntExp(0)), SeqExp[ CallExp(f,[ OpExp(DivideOp, VarExp( SimpleVar(i)), IntExp(10))]), CallExp(print,[ CallExp(chr,[ OpExp(PlusOp, OpExp(MinusOp, VarExp( SimpleVar(i)), OpExp(TimesOp, OpExp(DivideOp, VarExp( SimpleVar(i)), IntExp(10)), IntExp(10))), CallExp(ord,[ StringExp("0")]))])])]))]], IfExp( OpExp(LtOp, VarExp( SimpleVar(i)), IntExp(0)), SeqExp[ CallExp(print,[ StringExp("-")]), CallExp(f,[ OpExp(MinusOp, IntExp(0), VarExp( SimpleVar(i)))])], IfExp( OpExp(GtOp, VarExp( SimpleVar(i)), IntExp(0)), CallExp(f,[ VarExp( SimpleVar(i))]), CallExp(print,[ StringExp("0")])))))]], SeqExp[ CallExp(printint,[ IntExp(1)]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ OpExp(PlusOp, IntExp(1), IntExp(2))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ OpExp(PlusOp, IntExp(1), OpExp(TimesOp, IntExp(2), IntExp(9)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ IfExp( IntExp(1), IntExp(1), IntExp(0))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ IfExp( IntExp(0), IntExp(1), IntExp(0))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ IfExp( IntExp(0), IntExp(1), IntExp(1))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ IfExp( IntExp(0), IntExp(1), IntExp(0))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ OpExp(PlusOp, IntExp(1), OpExp(DivideOp, IntExp(4), IntExp(5)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ OpExp(PlusOp, IntExp(1), OpExp(DivideOp, IntExp(99), IntExp(11)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ OpExp(TimesOp, OpExp(MinusOp, IntExp(7), IntExp(2)), OpExp(PlusOp, IntExp(7), IntExp(2)))])])