module Data.Grid ( -- * Grids Grid(..) -- * Creation , generate , Rep.tabulate , fromNestedLists , fromNestedLists' , fromList , fromList' -- * Collapsing , toNestedLists -- * Indexing , Coord(..) , coord , unconsC , appendC , Rep.index -- * Updating , (//) -- * Lenses , cell -- * Convolution , autoConvolute , convolute , window -- ** Convolution Utils , partitionFocus , centerCoord -- ** Bounds restriction , clampBounds , wrapBounds , omitBounds -- * Permutations , transpose , permute , permuteCoord -- * Joining , joinGrid , splitGrid -- * Typeclasses & Type Families , IsGrid , Sizable(..) , NestedLists , Neighboring , ValidPermutation , Permuted ) where import Data.Grid.Internal.Grid import Data.Grid.Internal.Shapes import Data.Grid.Internal.Lens import Data.Grid.Internal.Transpose import Data.Grid.Internal.Coord import Data.Grid.Internal.Convolution import Data.Grid.Internal.NestedLists import Data.Functor.Rep as Rep