packages feed

list-t 0.3.1 → 0.3.2

raw patch · 3 files changed

+28/−2 lines, 3 filesdep ~mmorph

Dependency ranges changed: mmorph

Files

library/ListT.hs view
@@ -42,7 +42,7 @@ import Control.Monad.Trans.Class import Control.Monad.Trans.Reader import Control.Monad.Trans.Maybe-import Control.Monad.Trans.Control+import Control.Monad.Trans.Control hiding (embed, embed_) import Control.Monad.Base  -- |@@ -114,6 +114,12 @@ instance MFunctor ListT where   hoist f (ListT m) =     ListT $ f $ m >>= return . fmap (\(h, t) -> (h, hoist f t))++instance MMonad ListT where+  embed f (ListT m) =+    f m >>= \case+      Nothing -> mzero+      Just (h, t) -> ListT $ return $ Just $ (h, embed f t)  instance MonadBase b m => MonadBase b (ListT m) where   liftBase =
list-t.cabal view
@@ -1,7 +1,7 @@ name:   list-t version:-  0.3.1+  0.3.2 synopsis:   ListT done right description:@@ -63,6 +63,7 @@     Main.hs   build-depends:     list-t,+    mmorph,     HTF == 0.12.*,     mtl-prelude < 3,     base-prelude >= 0.1.3 && < 0.2
tests/Main.hs view
@@ -2,11 +2,30 @@  import BasePrelude hiding (toList) import MTLPrelude+import Control.Monad.Morph import Test.Framework import qualified ListT as L   main = htfMain $ htf_thisModulesTests+++-- * MMonad+-------------------------++-- embed lift = id+prop_mmonadLaw1 (l :: [Int]) =+  let s = L.fromFoldable l+      in runIdentity $ streamsEqual s (embed lift s)++-- embed f (lift m) = f m+prop_mmonadLaw2 l =+  let s = (L.fromFoldable :: [Int] -> L.ListT Identity Int) l+      f = MaybeT . fmap Just+      run = runIdentity . L.toList . runMaybeT+      in +        run (f s) == +        run (embed f (lift s))   -- * Applicative