Different methods of solving the Eight puzzle in Haskell