prologue 3.1.5 → 3.1.6
raw patch · 3 files changed
+17/−2 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Prologue.Control.Monad: bind :: Monad m => (t1 -> m a) -> m t1 -> m a
+ Prologue.Control.Monad: bind2 :: Monad m => (t1 -> t2 -> m a) -> m t1 -> m t2 -> m a
+ Prologue.Control.Monad: bind3 :: Monad m => (t1 -> t2 -> t3 -> m a) -> m t1 -> m t2 -> m t3 -> m a
+ Prologue.Control.Monad: bind4 :: Monad m => (t1 -> t2 -> t3 -> t4 -> m a) -> m t1 -> m t2 -> m t3 -> m t4 -> m a
+ Prologue.Control.Monad: bind5 :: Monad m => (t1 -> t2 -> t3 -> t4 -> t5 -> m a) -> m t1 -> m t2 -> m t3 -> m t4 -> m t5 -> m a
Files
- prologue.cabal +2/−2
- src/Prologue.hs +1/−0
- src/Prologue/Control/Monad.hs +14/−0
prologue.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 20576fd6610655f655eb87abb91128f645d312de5e9279f631daf41217717d88+-- hash: 93924f91fadef97edd78ddbaa2fbdda64321ea48a9f73656b565df564606c97c name: prologue-version: 3.1.5+version: 3.1.6 synopsis: Better, more general Prelude exporting common utilities. description: Replacement for the Haskell's Prelude, exposing more commonly used functions and patching old GHC ones to behave in the newest GHC's way. category: control
src/Prologue.hs view
@@ -38,6 +38,7 @@ import Prologue.Text.Show as X import Prologue.Text.Show.Pretty as X import Text.Show.Functions as X ()+import Data.Void as X (Void, absurd) -- === Monads === --
src/Prologue/Control/Monad.hs view
@@ -81,3 +81,17 @@ True -> return () False -> mzero {-# INLINE guard #-}+++-- === Binds === --++bind :: Monad m => (t1 -> m a) -> m t1 -> m a+bind2 :: Monad m => (t1 -> t2 -> m a) -> m t1 -> m t2 -> m a+bind3 :: Monad m => (t1 -> t2 -> t3 -> m a) -> m t1 -> m t2 -> m t3 -> m a+bind4 :: Monad m => (t1 -> t2 -> t3 -> t4 -> m a) -> m t1 -> m t2 -> m t3 -> m t4 -> m a+bind5 :: Monad m => (t1 -> t2 -> t3 -> t4 -> t5 -> m a) -> m t1 -> m t2 -> m t3 -> m t4 -> m t5 -> m a+bind = (=<<) ; {-# INLINE bind #-}+bind2 f mt1 mt2 = do { t1 <- mt1; t2 <- mt2; f t1 t2} ; {-# INLINE bind2 #-}+bind3 f mt1 mt2 mt3 = do { t1 <- mt1; t2 <- mt2; t3 <- mt3; f t1 t2 t3} ; {-# INLINE bind3 #-}+bind4 f mt1 mt2 mt3 mt4 = do { t1 <- mt1; t2 <- mt2; t3 <- mt3; t4 <- mt4; f t1 t2 t3 t4} ; {-# INLINE bind4 #-}+bind5 f mt1 mt2 mt3 mt4 mt5 = do { t1 <- mt1; t2 <- mt2; t3 <- mt3; t4 <- mt4; t5 <- mt5; f t1 t2 t3 t4 t5} ; {-# INLINE bind5 #-}