data-layer-1.0.2: 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.Layer.Coat

Documentation

type family Uncoated a Source

Equations

Uncoated (Coat a) = a 
Uncoated a = Uncoated (Unlayered a) 

class Coated a where Source

Methods

coated :: Lens' a (Uncoated a) Source

Instances

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

class CoatedM m a where Source

Methods

viewCoatedM :: a -> m (Uncoated a) Source

setCoatedM :: Uncoated a -> a -> m a Source

Instances

(Monad m, LayeredM m a, CoatedM m (Unlayered a), (~) * (Uncoated a) (Uncoated (Unlayered a))) => CoatedM m a Source 
Monad m => CoatedM m (Coat a) Source 

class CoatConstructor m a where Source

Methods

constructCoat :: Uncoated a -> m a Source