úÎ Ç #  cThis function computes an optimal (minimal distance) path through a graph in a best-first fashion, ' starting from a given starting point. FThe graph we are searching through, given as a function from vertices  to their neighbours. HDistance function between neighbouring vertices of the graph. This will K never be applied to vertices that are not neighbours, so may be undefined 0 on pairs that are not neighbours in the graph. *Heuristic distance to the (nearest) goal. 8The goal, specified as a boolean predicate on vertices. $The vertex to start searching from. %An optimal path, if any path exists.      astar-0.0Data.Graph.AStaraStarAStarvisitedwaitingscorememoHeurcameFromendrunAStarplane planeDist