A* Search implementation in Haskell