LetExp([ TypeDec[ (rectype1, RecordTy[ (name,true,string)]), (arrtype1, ArrayTy(rectype1)), (rectype2, RecordTy[ (testarr,true,arrtype1)]), (rectype3, RecordTy[ (test,true,rectype2)]), (arrtype2, ArrayTy(rectype3))], VarDec(arr,true,NONE, ArrayExp(arrtype2, IntExp(10), RecordExp(rectype3,[ (test, RecordExp(rectype2,[ (testarr, ArrayExp(arrtype1, IntExp(5), RecordExp(rectype1,[ (name, StringExp("test"))])))]))])))], SeqExp[ AssignExp( FieldVar( SubscriptVar( FieldVar( FieldVar( SubscriptVar( SimpleVar(arr), IntExp(0)), test), testarr), IntExp(1)), name), StringExp("new")), VarExp( FieldVar( SubscriptVar( FieldVar( FieldVar( SubscriptVar( SimpleVar(arr), IntExp(0)), test), testarr), IntExp(1)), name))])