LetExp([ VarDec(v1,true,NONE, IntExp(1)), FunctionDec[ (dummy1,[], SOME(int), LetExp([ VarDec(v2,true,NONE, IntExp(100)), FunctionDec[ (dummy2,[], SOME(int), LetExp([ VarDec(v3,true,NONE, IntExp(3)), FunctionDec[ (dummy3,[], SOME(int), LetExp([ VarDec(v4,true,NONE, IntExp(4)), FunctionDec[ (dummy4,[], SOME(int), VarExp( SimpleVar(v1)))]], OpExp(PlusOp, VarExp( SimpleVar(v3)), CallExp(dummy4,[]))))]], OpExp(PlusOp, VarExp( SimpleVar(v2)), CallExp(dummy3,[]))))]], CallExp(dummy2,[])))]], OpExp(PlusOp, CallExp(dummy1,[]), VarExp( SimpleVar(v1))))