data-layer-1.0.4: Data layering utilities. Layer is a data-type which wrapps other one, but keeping additional information. If you want to access content of simple newtype object, use Lens.Wrapper instead.

Safe HaskellNone
LanguageHaskell2010

Data.Coat

Documentation

class Coated c where Source

Minimal complete definition

Nothing

Methods

coated :: Lens (c a) (c a') a a' Source

class IsCoat c where Source

Minimal complete definition

Nothing

Methods

coat :: a -> c a Source

uncoat :: Coated c => c a -> a Source

class CoatedM m c where Source

Methods

viewCoatedM :: c a -> m a Source

setCoatedM :: a -> c a -> m (c a) Source

uncoatM :: CoatedM m c => c a -> m a Source

withCoatedM :: (CoatedM m c, Monad m) => (a -> m a) -> c a -> m (c a) Source

withCoatedM' :: (CoatedM m c, Monad m) => (a -> a) -> c a -> m (c a) Source

class CoatConstructor a m c where Source

Methods

constructCoat :: a -> m (c a) Source

class CoatGenerator m c where Source

Methods

generateCoat :: a -> m (c a) Source