(((value(DefineValue(RecFunctions((((value(Id id))(position((start_p(""2 17 20))(end_p(""2 17 22)))))(((value(ForallTy()((value(TyArrow((value(TyCon(TCon int)()))(position((start_p(""1 0 6))(end_p(""1 0 9)))))((value(TyCon(TCon int)()))(position((start_p(""1 0 13))(end_p(""1 0 16)))))))(position((start_p(""1 0 6))(end_p(""1 0 16)))))))(position((start_p(""1 0 6))(end_p(""1 0 16))))))(FunctionDefinition((value(PTypeAnnotation((value(PVariable((value(Id x))(position((start_p(""2 17 24))(end_p(""2 17 25)))))))(position((start_p(""2 17 24))(end_p(""2 17 25)))))((value(TyCon(TCon int)()))(position((start_p(""2 17 28))(end_p(""2 17 31)))))))(position((start_p(""2 17 23))(end_p(""2 17 32)))))((value(Apply((value(Variable((value(Id id))(position((start_p(""2 17 35))(end_p(""2 17 37)))))()))(position((start_p(""2 17 35))(end_p(""2 17 37)))))((value(Variable((value(Id x))(position((start_p(""2 17 38))(end_p(""2 17 39)))))()))(position((start_p(""2 17 38))(end_p(""2 17 39)))))))(position((start_p(""2 17 35))(end_p(""2 17 39)))))))))))(position((start_p(""1 0 0))(end_p(""2 17 39)))))((value(DefineValue(SimpleValue(((value(Id main))(position((start_p(""4 41 45))(end_p(""4 41 49)))))(((value(ForallTy()((value(TyCon(TCon int)()))(position((start_p(""4 41 52))(end_p(""4 41 55)))))))(position((start_p(""4 41 52))(end_p(""4 41 55))))))((value(Apply((value(Variable((value(Id id))(position((start_p(""5 58 62))(end_p(""5 58 64)))))()))(position((start_p(""5 58 62))(end_p(""5 58 64)))))((value(Literal((value(LString foo))(position((start_p(""5 58 69))(end_p(""5 58 70)))))))(position((start_p(""5 58 69))(end_p(""5 58 70)))))))(position((start_p(""5 58 62))(end_p(""5 58 70)))))))))(position((start_p(""4 41 41))(end_p(""5 58 70))))))