{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE TypeFamilies #-} module PathFinding.Graph where import Data.Ix import PathFinding.Class import qualified Data.Map as Map import Data.Map (Map) type NodeID = Int data Graph distanceUnit = Grid { _nodes :: Map NodeID [(NodeID, distanceUnit)] } instance PathFinding (Graph u) where type Pos (Graph u) = NodeID type Queue (Graph u) = [(NodeID, u)] type Neighbor (Graph u) = (NodeID, u) locate _ p = undefined {- neighbors Grid{..} p = _neighbor _carte p mkqueue _ positions = positions enqueue _ l q = l ++ q dequeue _ q = case q of [] -> Nothing (a:as) -> Just (a, as) -}