packages feed

list-t 0.4.5.1 → 0.4.6

raw patch · 2 files changed

+24/−11 lines, 2 filesdep +basedep ~HTFdep ~base-preludedep ~mmorph

Dependencies added: base

Dependency ranges changed: HTF, base-prelude, mmorph, monad-control, transformers

Files

library/ListT.hs view
@@ -19,6 +19,7 @@   fromFoldable,   fromMVar,   unfold,+  unfoldM,   repeat,   -- * Transformation utilities   -- | @@ -72,8 +73,8 @@             return (Just (h1, (mappend s1' (ListT m2))))  instance Functor m => Functor (ListT m) where-  fmap f (ListT m) =-    ListT $ (fmap . fmap) (\(a, b) -> (f a, fmap f b)) m+  fmap f =+    ListT . (fmap . fmap) (f *** fmap f) . unListT  instance (Monad m, Functor m) => Applicative (ListT m) where   pure = @@ -114,8 +115,8 @@     lift . liftIO  instance MFunctor ListT where-  hoist f (ListT m) =-    ListT $ f $ m >>= return . fmap (\(h, t) -> (h, hoist f t))+  hoist f =+    ListT . f . (fmap . fmap) (id *** hoist f) . unListT  instance MMonad ListT where   embed f (ListT m) =@@ -291,6 +292,18 @@ unfold :: (MonadCons m) => (b -> Maybe (a, b)) -> b -> m a unfold f s =   maybe mzero (\(h, t) -> cons h (unfold f t)) (f s)++-- |+-- Construct by unfolding a monadic data structure+--+-- This is the most memory-efficient way to construct a ListT where+-- the length depends on the inner monad.+{-# INLINABLE unfoldM #-}+unfoldM :: (Monad m) => (b -> m (Maybe (a, b))) -> b -> ListT m a+unfoldM f = go where+  go s = ListT $ f s >>= \case+    Nothing -> return Nothing+    Just (a,r) -> return (Just (a, go r))  -- | -- Produce an infinite stream.
list-t.cabal view
@@ -1,7 +1,7 @@ name:   list-t version:-  0.4.5.1+  0.4.6 synopsis:   ListT done right description:@@ -43,12 +43,12 @@   exposed-modules:     ListT   build-depends:-    mmorph == 1.0.*,-    monad-control >= 0.3 && < 1.1,+    mmorph == 1.*,+    monad-control >= 0.3 && < 2,     mtl == 2.*,     transformers-base == 0.4.*,-    transformers >= 0.3 && < 0.5,-    base-prelude == 0.1.*+    transformers >= 0.3 && < 0.6,+    base-prelude < 2   default-extensions:     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples   default-language:@@ -65,9 +65,9 @@   build-depends:     list-t,     mmorph,-    HTF == 0.12.*,+    HTF == 0.13.*,     mtl-prelude < 3,-    base-prelude >= 0.1.3 && < 0.2+    base-prelude   default-extensions:     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples   default-language: