grids-0.1.0.0: src/Data/Grid/Lens.hs
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE FlexibleContexts #-}
module Data.Grid.Lens where
import Data.Grid
import Control.Lens as L
import Data.Functor.Rep as R
cell
:: (Dimensions dims, Eq (Coord dims)) => Coord dims -> Lens' (Grid dims a) a
cell c = lens (`R.index` c) (\s b -> s & itraversed . L.index c .~ b)