packages feed

grid 7.1 → 7.3

raw patch · 8 files changed

+57/−36 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_0HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_0HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_0ParaHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_0UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_1HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_2HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_3HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_4HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Constructor C1_5HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Datatype D1HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Datatype D1HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Datatype D1ParaHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Datatype D1UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Eq UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Generic HexDirection
+ Math.Geometry.Grid.HexagonalInternal: instance Generic HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Generic ParaHexGrid
+ Math.Geometry.Grid.HexagonalInternal: instance Generic UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_0HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_0HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_0RectHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_0UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_1HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_2HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_3HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_4HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Constructor C1_5HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Datatype D1HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Datatype D1HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Datatype D1RectHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Datatype D1UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Eq UnboundedHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Generic HexDirection
+ Math.Geometry.Grid.HexagonalInternal2: instance Generic HexHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Generic RectHexGrid
+ Math.Geometry.Grid.HexagonalInternal2: instance Generic UnboundedHexGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_0OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_0RectOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_0TorOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_0UnboundedOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_1OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_2OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_3OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_4OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_5OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_6OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Constructor C1_7OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Datatype D1OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Datatype D1RectOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Datatype D1TorOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Datatype D1UnboundedOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Eq UnboundedOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Generic OctDirection
+ Math.Geometry.Grid.OctagonalInternal: instance Generic RectOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Generic TorOctGrid
+ Math.Geometry.Grid.OctagonalInternal: instance Generic UnboundedOctGrid
+ Math.Geometry.Grid.SquareInternal: instance Constructor C1_0RectSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Constructor C1_0TorSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Constructor C1_0UnboundedSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Datatype D1RectSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Datatype D1TorSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Datatype D1UnboundedSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Eq UnboundedSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Generic RectSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Generic TorSquareGrid
+ Math.Geometry.Grid.SquareInternal: instance Generic UnboundedSquareGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0ParaTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0RectTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0TorTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0TriTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0UnboundedTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0XCylTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_0YCylTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_1TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_2TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_3TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_4TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Constructor C1_5TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1ParaTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1RectTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1TorTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1TriTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1UnboundedTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1XCylTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Datatype D1YCylTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Eq UnboundedTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic ParaTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic RectTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic TorTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic TriDirection
+ Math.Geometry.Grid.TriangularInternal: instance Generic TriTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic UnboundedTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic XCylTriGrid
+ Math.Geometry.Grid.TriangularInternal: instance Generic YCylTriGrid
+ Math.Geometry.GridMap.Lazy: instance Constructor C1_0LGridMap
+ Math.Geometry.GridMap.Lazy: instance Datatype D1LGridMap
+ Math.Geometry.GridMap.Lazy: instance Generic (LGridMap g v)
+ Math.Geometry.GridMap.Lazy: instance Selector S1_0_0LGridMap
+ Math.Geometry.GridMap.Lazy: instance Selector S1_0_1LGridMap

Files

grid.cabal view
@@ -1,5 +1,5 @@ name:           grid-version:        7.1+version:        7.3 synopsis:       Tools for working with regular grids (graphs, lattices). description:    Provides tools for working with regular arrangements                 of tiles, such as might be used in a board game or some
src/Math/Geometry/Grid/HexagonalInternal.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------------------ -- | -- Module      :  Math.Geometry.HexGridInternal--- Copyright   :  (c) Amy de Buitléir 2012+-- Copyright   :  (c) Amy de Buitléir 2012-2013 -- License     :  BSD-style -- Maintainer  :  amy@nualeargais.ie -- Stability   :  experimental@@ -12,7 +12,7 @@ -- without notice. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, DeriveGeneric #-}  module Math.Geometry.Grid.HexagonalInternal where @@ -20,15 +20,16 @@ import Data.Function (on) import Data.List (groupBy, sortBy) import Data.Ord (comparing)+import GHC.Generics (Generic) import Math.Geometry.GridInternal  data HexDirection = West | Northwest | Northeast | East | Southeast | -                      Southwest deriving (Show, Eq)+                      Southwest deriving (Show, Eq, Generic)  -- | An unbounded grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data UnboundedHexGrid = UnboundedHexGrid deriving Show+data UnboundedHexGrid = UnboundedHexGrid deriving (Show, Eq, Generic)  instance Grid UnboundedHexGrid where   type Index UnboundedHexGrid = (Int, Int)@@ -63,7 +64,7 @@ -- | A hexagonal grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data HexHexGrid = HexHexGrid Int [(Int, Int)] deriving Eq+data HexHexGrid = HexHexGrid Int [(Int, Int)] deriving (Eq, Generic)  instance Show HexHexGrid where show (HexHexGrid s _) = "hexHexGrid " ++ show s @@ -113,7 +114,8 @@ -- | A parallelogramatical grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data ParaHexGrid = ParaHexGrid (Int, Int) [(Int, Int)] deriving Eq+data ParaHexGrid = ParaHexGrid (Int, Int) [(Int, Int)]+  deriving (Eq, Generic)  instance Show ParaHexGrid where    show (ParaHexGrid (r,c) _) = "paraHexGrid " ++ show r ++ " " ++ show c
src/Math/Geometry/Grid/HexagonalInternal2.hs view
@@ -12,20 +12,21 @@ -- without notice. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, DeriveGeneric #-}  module Math.Geometry.Grid.HexagonalInternal2 where  import Prelude hiding (null)+import GHC.Generics (Generic) import Math.Geometry.GridInternal  data HexDirection = Northwest | North | Northeast | Southeast | South |-                      Southwest deriving (Show, Eq)+                      Southwest deriving (Show, Eq, Generic)  -- | An unbounded grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data UnboundedHexGrid = UnboundedHexGrid deriving Show+data UnboundedHexGrid = UnboundedHexGrid deriving (Eq, Show, Generic)  instance Grid UnboundedHexGrid where   type Index UnboundedHexGrid = (Int, Int)@@ -60,7 +61,7 @@ -- | A hexagonal grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data HexHexGrid = HexHexGrid Int [(Int, Int)] deriving Eq+data HexHexGrid = HexHexGrid Int [(Int, Int)] deriving (Eq, Generic)  instance Show HexHexGrid where show (HexHexGrid s _) = "hexHexGrid " ++ show s @@ -110,7 +111,8 @@ -- | A rectangular grid with hexagonal tiles --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data RectHexGrid = RectHexGrid (Int, Int) [(Int, Int)] deriving Eq+data RectHexGrid = RectHexGrid (Int, Int) [(Int, Int)]+  deriving (Eq, Generic)  instance Show RectHexGrid where    show (RectHexGrid (r,c) _) = "rectHexGrid " ++ show r ++ " " ++ show c
src/Math/Geometry/Grid/OctagonalInternal.hs view
@@ -12,22 +12,24 @@ -- without notice. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, DeriveGeneric #-}  module Math.Geometry.Grid.OctagonalInternal where  import Prelude hiding (null)  import Data.List (nub)+import GHC.Generics (Generic) import Math.Geometry.GridInternal  data OctDirection = West | Northwest | North | Northeast | East | -                      Southeast | South | Southwest deriving (Show, Eq)+                      Southeast | South | Southwest+                        deriving (Show, Eq, Generic)  -- | An unbounded grid with octagonal tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data UnboundedOctGrid = UnboundedOctGrid deriving Show+data UnboundedOctGrid = UnboundedOctGrid deriving (Eq, Show, Generic)  instance Grid UnboundedOctGrid where   type Index UnboundedOctGrid = (Int, Int)@@ -59,7 +61,8 @@ -- | A rectangular grid with octagonal tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data RectOctGrid = RectOctGrid (Int, Int) [(Int, Int)] deriving Eq+data RectOctGrid = RectOctGrid (Int, Int) [(Int, Int)]+  deriving (Eq, Generic)  instance Show RectOctGrid where    show (RectOctGrid (r,c) _) = @@ -102,7 +105,8 @@ -- | A toroidal grid with octagonal tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data TorOctGrid = TorOctGrid (Int, Int) [(Int, Int)] deriving Eq+data TorOctGrid = TorOctGrid (Int, Int) [(Int, Int)]+  deriving (Eq, Generic)  instance Show TorOctGrid where    show (TorOctGrid (r,c) _) = "torOctGrid " ++ show r ++ " " ++ show c
src/Math/Geometry/Grid/SquareInternal.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------------------ -- | -- Module      :  Math.Geometry.SquareGridInternal--- Copyright   :  (c) Amy de Buitléir 2012+-- Copyright   :  (c) Amy de Buitléir 2012-2013 -- License     :  BSD-style -- Maintainer  :  amy@nualeargais.ie -- Stability   :  experimental@@ -12,21 +12,24 @@ -- without notice. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, DeriveGeneric #-}  module Math.Geometry.Grid.SquareInternal where  import Prelude hiding (null)  import Data.List (nub)+import GHC.Generics (Generic) import Math.Geometry.GridInternal -data SquareDirection = North | East | South | West deriving (Show, Eq)+data SquareDirection = North | East | South | West+  deriving (Show, Eq)  -- | An unbounded grid with square tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data UnboundedSquareGrid = UnboundedSquareGrid deriving Show+data UnboundedSquareGrid = UnboundedSquareGrid+  deriving (Eq, Show, Generic)  instance Grid UnboundedSquareGrid where   type Index UnboundedSquareGrid = (Int, Int)@@ -50,7 +53,8 @@ -- | A rectangular grid with square tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data RectSquareGrid = RectSquareGrid (Int, Int) [(Int, Int)] deriving Eq+data RectSquareGrid = RectSquareGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show RectSquareGrid where    show (RectSquareGrid (r,c) _) = @@ -99,7 +103,8 @@ -- | A toroidal grid with square tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data TorSquareGrid = TorSquareGrid (Int, Int) [(Int, Int)] deriving Eq+data TorSquareGrid = TorSquareGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show TorSquareGrid where    show (TorSquareGrid (r,c) _) = "torSquareGrid " ++ show r ++ " " ++ show c
src/Math/Geometry/Grid/TriangularInternal.hs view
@@ -1,7 +1,7 @@ ------------------------------------------------------------------------ -- | -- Module      :  Math.Geometry.TriGridInternal--- Copyright   :  (c) Amy de Buitléir 2012+-- Copyright   :  (c) Amy de Buitléir 2012-2013 -- License     :  BSD-style -- Maintainer  :  amy@nualeargais.ie -- Stability   :  experimental@@ -12,22 +12,24 @@ -- without notice. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, DeriveGeneric #-}  module Math.Geometry.Grid.TriangularInternal where  import Prelude hiding (null)  import Data.List (nub)+import GHC.Generics (Generic) import Math.Geometry.GridInternal  data TriDirection = South | Northwest | Northeast | -                      North | Southeast | Southwest deriving (Show, Eq)+                      North | Southeast | Southwest+                        deriving (Show, Eq, Generic)  -- | An unbounded grid with triangular tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data UnboundedTriGrid = UnboundedTriGrid deriving Show+data UnboundedTriGrid = UnboundedTriGrid deriving (Eq, Show, Generic)  instance Grid UnboundedTriGrid where   type Index UnboundedTriGrid = (Int, Int)@@ -69,7 +71,7 @@ -- | A triangular grid with triangular tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data TriTriGrid = TriTriGrid Int [(Int, Int)] deriving Eq+data TriTriGrid = TriTriGrid Int [(Int, Int)] deriving (Eq, Generic)  instance Show TriTriGrid where    show (TriTriGrid s _) = "triTriGrid " ++ show s@@ -124,7 +126,8 @@ -- | A Parallelogrammatical grid with triangular tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data ParaTriGrid = ParaTriGrid (Int, Int) [(Int, Int)] deriving Eq+data ParaTriGrid = ParaTriGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show ParaTriGrid where    show (ParaTriGrid (r,c) _) = "paraTriGrid " ++ show r ++ " " ++ show c@@ -187,7 +190,8 @@ -- | A rectangular grid with triangular tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data RectTriGrid = RectTriGrid (Int, Int) [(Int, Int)] deriving Eq+data RectTriGrid = RectTriGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show RectTriGrid where    show (RectTriGrid (r,c) _) = "rectTriGrid " ++ show r ++ " " ++ show c@@ -229,7 +233,8 @@ -- | A toroidal grid with triangular tiles. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data TorTriGrid = TorTriGrid (Int, Int) [(Int, Int)] deriving Eq+data TorTriGrid = TorTriGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show TorTriGrid where    show (TorTriGrid (r,c) _) = "torTriGrid " ++ show r ++ " " ++ show c@@ -280,7 +285,8 @@ --   along the y-axis. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data YCylTriGrid = YCylTriGrid (Int, Int) [(Int, Int)] deriving Eq+data YCylTriGrid = YCylTriGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show YCylTriGrid where    show (YCylTriGrid (r,c) _) = "yCylTriGrid " ++ show r ++ " " ++ show c@@ -325,7 +331,8 @@ --   along the x-axis. --   The grid and its indexing scheme are illustrated in the user guide, --   available at <https://github.com/mhwombat/grid/wiki>.-data XCylTriGrid = XCylTriGrid (Int, Int) [(Int, Int)] deriving Eq+data XCylTriGrid = XCylTriGrid (Int, Int) [(Int, Int)]+  deriving  (Eq, Generic)  instance Show XCylTriGrid where    show (XCylTriGrid (r,c) _) = "yCylTriGrid " ++ show r ++ " " ++ show c
src/Math/Geometry/GridMap.hs view
@@ -13,8 +13,7 @@ -- into a single type. -- -------------------------------------------------------------------------{-# LANGUAGE TypeFamilies, FlexibleContexts, MultiParamTypeClasses,-    UndecidableInstances #-}+{-# LANGUAGE TypeFamilies, FlexibleContexts, MultiParamTypeClasses #-}  module Math.Geometry.GridMap   (
src/Math/Geometry/GridMap/Lazy.hs view
@@ -14,7 +14,7 @@ -- ------------------------------------------------------------------------ {-# LANGUAGE TypeFamilies, FlexibleContexts, FlexibleInstances,-    MultiParamTypeClasses, UndecidableInstances #-}+    MultiParamTypeClasses, UndecidableInstances, DeriveGeneric #-}  module Math.Geometry.GridMap.Lazy   (@@ -29,12 +29,14 @@ import qualified Data.Map as M --import qualified Data.Map.Strict as Strict (Map) import Data.Maybe (fromMaybe)+import GHC.Generics (Generic) import qualified Math.Geometry.Grid as G import Math.Geometry.GridMap  -- | A map from tile positions in a grid to values. data LGridMap g v =   LGridMap { lgmGrid :: g, lgmMap :: M.Map (G.Index g) v }+    deriving Generic  -- | Construct a grid map which is strict in the keys (tile positions), but --   lazy in the values.