+genVars :: Int Int -> [String]
+genVars x y = genVars` x y 0 0 []
+where
+ genVars` :: Int Int Int Int [String] -> [String]
+ genVars` a b x y res
+ | (a+1) == x = res
+ | b == y = genVars` a b (x+1) 0 [" x" +++ toString x +++ "_" +++ toString y +++ " : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget};\n":res]
+ | otherwise = genVars` a b x (y+1) [" x" +++ toString x +++ "_" +++ toString y +++ " : {Wall, Free, Box, BoxOnTarget, Target, Agent, AgentOnTarget};\n":res]
+