semigroupoids 5.3.6 → 5.3.7
raw patch · 4 files changed
+32/−12 lines, 4 files
Files
- CHANGELOG.markdown +22/−0
- semigroupoids.cabal +4/−4
- src/Data/Functor/Alt.hs +3/−4
- src/Data/Functor/Plus.hs +3/−4
CHANGELOG.markdown view
@@ -1,3 +1,25 @@+5.3.7 [2022.01.09]+------------------+* Relax the `Bind` constraints in the following instances to `Functor`:++ ```diff+ -instance (Bind f, Monad f) => Alt (MaybeT f)+ -instance (Bind f, Monad f) => Plus (MaybeT f)+ +instance (Functor f, Monad f) => Alt (MaybeT f)+ +instance (Functor f, Monad f) => Plus (MaybeT f)++ -instance (Bind f, Monad f, Semigroup e) => Alt (ExceptT e f)+ -instance (Bind f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f)+ +instance (Functor f, Monad f, Semigroup e) => Alt (ExceptT e f)+ +instance (Functor f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f)++ -- If building with transformers-0.5.* or older+ -instance (Bind f, Monad f) => Alt (ErrorT e f)+ -instance (Bind f, Monad f, Error e) => Plus (ErrorT e f+ +instance (Functor f, Monad f) => Alt (ErrorT e f)+ +instance (Functor f, Monad f, Error e) => Plus (ErrorT e f)+ ```+ 5.3.6 [2021.10.07] ------------------ * Allow building with GHC 9.2.
semigroupoids.cabal view
@@ -1,6 +1,6 @@ name: semigroupoids category: Control, Comonads-version: 5.3.6+version: 5.3.7 license: BSD2 cabal-version: 1.18 license-file: LICENSE@@ -54,7 +54,7 @@ indicate a subclass relationship that actually exists; dashed edges indicate a subclass relationship that /should/ exist, but currently doesn't. .- <<img/classes.svg Relationships among type classes from this package and others>>+ <<https://raw.githubusercontent.com/ekmett/semigroupoids/master/img/classes.svg Relationships among type classes from this package and others>> . Apply, Bind, and Extend (not shown) give rise the Static, Kleisli and Cokleisli semigroupoids respectively. .@@ -164,10 +164,10 @@ if flag(unordered-containers) if impl(ghc >= 7.4)- build-depends: hashable >= 1.2.7.0 && < 1.4,+ build-depends: hashable >= 1.2.7.0 && < 1.5, unordered-containers >= 0.2.8.0 && < 0.3 else- build-depends: hashable >= 1.2.5.0 && < 1.4,+ build-depends: hashable >= 1.2.5.0 && < 1.5, unordered-containers >= 0.2.8.0 && < 0.3 hs-source-dirs: src
src/Data/Functor/Alt.hs view
@@ -50,7 +50,6 @@ import qualified Control.Monad.Trans.State.Lazy as Lazy import qualified Control.Monad.Trans.Writer.Lazy as Lazy import Data.Functor.Apply-import Data.Functor.Bind import Data.Functor.Compose import Data.Functor.Identity (Identity (Identity)) import Data.Functor.Product@@ -253,7 +252,7 @@ instance Alt f => Alt (ReaderT e f) where ReaderT a <!> ReaderT b = ReaderT $ \e -> a e <!> b e -instance (Bind f, Monad f) => Alt (MaybeT f) where+instance (Functor f, Monad f) => Alt (MaybeT f) where MaybeT a <!> MaybeT b = MaybeT $ do v <- a case v of@@ -261,7 +260,7 @@ Just _ -> return v #if !(MIN_VERSION_transformers(0,6,0))-instance (Bind f, Monad f) => Alt (ErrorT e f) where+instance (Functor f, Monad f) => Alt (ErrorT e f) where ErrorT m <!> ErrorT n = ErrorT $ do a <- m case a of@@ -272,7 +271,7 @@ ListT a <!> ListT b = ListT $ (<!>) <$> a <.> b #endif -instance (Bind f, Monad f, Semigroup e) => Alt (ExceptT e f) where+instance (Functor f, Monad f, Semigroup e) => Alt (ExceptT e f) where ExceptT m <!> ExceptT n = ExceptT $ do a <- m case a of
src/Data/Functor/Plus.hs view
@@ -43,7 +43,6 @@ import Data.Foldable hiding (asum) import Data.Functor.Apply import Data.Functor.Alt-import Data.Functor.Bind import Data.Functor.Compose import Data.Functor.Product import Data.Functor.Reverse@@ -158,18 +157,18 @@ instance Plus f => Plus (ReaderT e f) where zero = ReaderT $ \_ -> zero -instance (Bind f, Monad f) => Plus (MaybeT f) where+instance (Functor f, Monad f) => Plus (MaybeT f) where zero = MaybeT $ return zero #if !(MIN_VERSION_transformers(0,6,0))-instance (Bind f, Monad f, Error e) => Plus (ErrorT e f) where+instance (Functor f, Monad f, Error e) => Plus (ErrorT e f) where zero = ErrorT $ return $ Left noMsg instance (Apply f, Applicative f) => Plus (ListT f) where zero = ListT $ pure [] #endif -instance (Bind f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f) where+instance (Functor f, Monad f, Semigroup e, Monoid e) => Plus (ExceptT e f) where zero = ExceptT $ return $ Left mempty instance Plus f => Plus (Strict.StateT e f) where