shortest path with Haskell