data-layer 1.0.2 → 1.0.3
raw patch · 2 files changed
+10/−5 lines, 2 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.Layer.Coat: instance (GHC.Base.Monad m, Data.Layer.Coat.CoatConstructor m (Data.Construction.Destructed a), Data.Layer.Coat.Uncoated a ~ Data.Layer.Coat.Uncoated (Data.Construction.Destructed a), Data.Construction.Constructor m a) => Data.Layer.Coat.CoatConstructor m a
+ Data.Layer.Coat: class CoatDestructor m a
+ Data.Layer.Coat: destructCoat :: CoatDestructor m a => a -> m (Uncoated a)
+ Data.Layer.Coat: instance (Data.Layer.Coat.CoatConstructor m (Data.Construction.Destructed a), Data.Layer.Coat.Uncoated a ~ Data.Layer.Coat.Uncoated (Data.Construction.Destructed a), Data.Construction.Constructor m a, GHC.Base.Monad m) => Data.Layer.Coat.CoatConstructor m a
+ Data.Layer.Coat: instance (Data.Layer.Coat.Uncoated a ~ Data.Layer.Coat.Uncoated (Data.Construction.Destructed a), Data.Layer.Coat.CoatDestructor m (Data.Construction.Destructed a), Data.Construction.Destructor m a, GHC.Base.Monad m) => Data.Layer.Coat.CoatDestructor m a
+ Data.Layer.Coat: instance GHC.Base.Monad m => Data.Layer.Coat.CoatDestructor m (Data.Layer.Coat.Coat a)
Files
- data-layer.cabal +1/−1
- src/Data/Layer/Coat.hs +9/−4
data-layer.cabal view
@@ -1,5 +1,5 @@ name: data-layer-version: 1.0.2+version: 1.0.3 cabal-version: >=1.10 build-type: Simple license: Apache-2.0
src/Data/Layer/Coat.hs view
@@ -60,13 +60,18 @@ -- === Coat generator === class CoatConstructor m a where constructCoat :: Uncoated a -> m a-instance {-# OVERLAPPABLE #-} ( Monad m- , CoatConstructor m (Destructed a)+instance {-# OVERLAPPABLE #-} ( CoatConstructor m (Destructed a) , Uncoated a ~ Uncoated (Destructed a) , Constructor m a- ) => CoatConstructor m a where constructCoat = constructCoat >=> construct-instance {-# OVERLAPPABLE #-} Monad m => CoatConstructor m (Coat a) where constructCoat = return . Coat+ , Monad m ) => CoatConstructor m a where constructCoat = constructCoat >=> construct+instance {-# OVERLAPPABLE #-} Monad m => CoatConstructor m (Coat a) where constructCoat = return . Coat +class CoatDestructor m a where destructCoat :: a -> m (Uncoated a)+instance {-# OVERLAPPABLE #-} ( Uncoated a ~ Uncoated (Destructed a)+ , CoatDestructor m (Destructed a)+ , Destructor m a+ , Monad m ) => CoatDestructor m a where destructCoat = destruct >=> destructCoat+instance {-# OVERLAPPABLE #-} Monad m => CoatDestructor m (Coat a) where destructCoat = return . view _Wrapped' --class Destruction m a where destroy :: a -> m (Uncoated a) --instance {-# OVERLAPPABLE #-} Monad m => Destruction m (Coat a) where destroy = return . unlayer