definition module Sokoban :: SokobanPuzzle = { width :: Int, height :: Int, data :: [[SokobanTile]]} :: SokobanTile = Wall | Free | Box | Target | Agent parse :: String *World -> (SokobanPuzzle, *World)