-- | Maps of places module PlaceMap ( PlaceMap , fromList , toList , empty , lookup , insert , delete ) where import Place import qualified Data.IntMap as M import Prelude hiding (lookup) ------------- -- | Map of places. type PlaceMap = M.IntMap fromList :: [(Place, a)] -> PlaceMap a fromList = M.fromList . map (\(p, a) -> (hashPlace p, a)) toList :: PlaceMap a -> [(Place, a)] toList = map (\(p, a)-> (unHashPlace p, a)) . M.toList empty :: PlaceMap a empty = M.empty lookup :: Place -> PlaceMap a -> Maybe a lookup p m = M.lookup (hashPlace p) m insert :: Place -> a -> PlaceMap a -> PlaceMap a insert p a m = M.insert (hashPlace p) a m delete :: Place -> PlaceMap a -> PlaceMap a delete p m = M.delete (hashPlace p) m