kan-extensions 0.2.1 → 0.2.2
raw patch · 2 files changed
+10/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Monad.Codensity: instance Alternative v => Alternative (CodensityT v)
+ Control.Monad.Codensity: instance MonadPlus v => MonadPlus (CodensityT v)
Files
- Control/Monad/Codensity.hs +9/−1
- kan-extensions.cabal +1/−1
Control/Monad/Codensity.hs view
@@ -18,7 +18,7 @@ ) where import Control.Applicative-import Control.Monad (ap)+import Control.Monad (ap, MonadPlus(..)) import Data.Functor.Adjunction import Data.Functor.Apply import Control.Monad.Trans.Class@@ -52,6 +52,14 @@ instance MonadTrans CodensityT where lift m = CodensityT (m >>=) +instance Alternative v => Alternative (CodensityT v) where+ empty = CodensityT (\_ -> empty)+ CodensityT m <|> CodensityT n = CodensityT (\k -> m k <|> n k)++instance MonadPlus v => MonadPlus (CodensityT v) where+ mzero = CodensityT (\_ -> mzero)+ CodensityT m `mplus` CodensityT n = CodensityT (\k -> m k `mplus` n k)+ lowerCodensityT :: Monad m => CodensityT m a -> m a lowerCodensityT a = runCodensityT a return
kan-extensions.cabal view
@@ -1,6 +1,6 @@ name: kan-extensions category: Data Structures, Monads, Comonads, Functors-version: 0.2.1+version: 0.2.2 license: BSD3 cabal-version: >= 1.6 license-file: LICENSE