LetExp([ TypeDec[ (myint, NameTy(int)), (arrtype, ArrayTy(myint))], VarDec(arr1,false,SOME(arrtype), ArrayExp(arrtype, IntExp(10), IntExp(0))), VarDec(arr2,false,SOME(arrtype), ArrayExp(arrtype, IntExp(5), IntExp(6))), VarDec(i,false,NONE, IntExp(2)), 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[ AssignExp( SubscriptVar( SimpleVar(arr1), IntExp(3)), IntExp(5)), AssignExp( SubscriptVar( SimpleVar(arr1), IntExp(6)), IntExp(7)), VarExp( SimpleVar(arr1)), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), IntExp(5)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), IntExp(0)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), IntExp(9)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr2), IntExp(4)))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), OpExp(PlusOp, VarExp( SimpleVar(i)), IntExp(1))))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), VarExp( SubscriptVar( SimpleVar(arr2), IntExp(3)))))]), CallExp(print,[ StringExp(" ")]), CallExp(printint,[ VarExp( SubscriptVar( SimpleVar(arr1), OpExp(PlusOp, VarExp( SimpleVar(i)), IntExp(8))))]), CallExp(print,[ StringExp(" ")])])