list-t 1.0.0.1 → 1.0.1
raw patch · 3 files changed
+91/−18 lines, 3 filesdep +semigroupsdep ~basedep ~base-preludePVP ok
version bump matches the API change (PVP)
Dependencies added: semigroups
Dependency ranges changed: base, base-prelude
API changes (from Hackage documentation)
+ ListT: instance GHC.Base.Monad m => Data.Semigroup.Semigroup (ListT.ListT m a)
Files
- library/ListT.hs +10/−15
- library/ListT/Prelude.hs +75/−0
- list-t.cabal +6/−3
library/ListT.hs view
@@ -33,15 +33,7 @@ ) where -import BasePrelude hiding (uncons, toList, yield, fold, traverse, head, tail, take, drop, repeat, null, traverse_, splitAt)-import Control.Monad.Morph hiding (MonadTrans(..))-import Control.Monad.IO.Class-import Control.Monad.Error.Class -import Control.Monad.Trans.Class-import Control.Monad.Trans.Reader-import Control.Monad.Trans.Maybe-import Control.Monad.Trans.Control hiding (embed, embed_)-import Control.Monad.Base+import ListT.Prelude hiding (uncons, toList, yield, fold, traverse, head, tail, take, drop, repeat, null, traverse_, splitAt) -- | -- A proper implementation of the list monad-transformer.@@ -54,18 +46,21 @@ newtype ListT m a = ListT (m (Maybe (a, ListT m a))) -instance Monad m => Monoid (ListT m a) where- mempty =- ListT $ - return Nothing- mappend (ListT m1) (ListT m2) =+instance Monad m => Semigroup (ListT m a) where+ (<>) (ListT m1) (ListT m2) = ListT $ m1 >>= \case Nothing -> m2 Just (h1, s1') ->- return (Just (h1, (mappend s1' (ListT m2))))+ return (Just (h1, ((<>) s1' (ListT m2))))++instance Monad m => Monoid (ListT m a) where+ mempty =+ ListT $ + return Nothing+ mappend = (<>) instance Functor m => Functor (ListT m) where fmap f =
+ library/ListT/Prelude.hs view
@@ -0,0 +1,75 @@+module ListT.Prelude+( + module Exports,+)+where++import Control.Applicative as Exports+import Control.Arrow as Exports+import Control.Category as Exports+import Control.Concurrent as Exports+import Control.Exception as Exports+import Control.Monad as Exports hiding (mapM_, sequence_, forM_, msum, mapM, sequence, forM)+import Control.Monad.Base as Exports+import Control.Monad.Error.Class as Exports+import Control.Monad.Fix as Exports hiding (fix)+import Control.Monad.IO.Class as Exports+import Control.Monad.Morph as Exports hiding (MonadTrans(..))+import Control.Monad.ST as Exports+import Control.Monad.Trans.Class as Exports+import Control.Monad.Trans.Control as Exports hiding (embed, embed_)+import Control.Monad.Trans.Maybe as Exports hiding (liftCatch, liftCallCC)+import Control.Monad.Trans.Reader as Exports hiding (liftCatch, liftCallCC)+import Data.Bits as Exports+import Data.Bool as Exports+import Data.Char as Exports+import Data.Coerce as Exports+import Data.Complex as Exports+import Data.Data as Exports+import Data.Dynamic as Exports+import Data.Either as Exports+import Data.Fixed as Exports+import Data.Foldable as Exports+import Data.Function as Exports hiding (id, (.))+import Data.Functor as Exports+import Data.Int as Exports+import Data.IORef as Exports+import Data.Ix as Exports+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')+import Data.Maybe as Exports+import Data.Monoid as Exports hiding (getLast, getFirst, (<>), Last, First)+import Data.Ord as Exports+import Data.Proxy as Exports+import Data.Ratio as Exports+import Data.Semigroup as Exports+import Data.STRef as Exports+import Data.String as Exports+import Data.Traversable as Exports+import Data.Tuple as Exports+import Data.Unique as Exports+import Data.Version as Exports+import Data.Word as Exports+import Debug.Trace as Exports+import Foreign.ForeignPtr as Exports+import Foreign.Ptr as Exports+import Foreign.StablePtr as Exports+import Foreign.Storable as Exports+import GHC.Conc as Exports hiding (withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)+import GHC.Exts as Exports (lazy, inline, sortWith, groupWith)+import GHC.Generics as Exports (Generic)+import GHC.IO.Exception as Exports+import Numeric as Exports+import Prelude as Exports hiding (concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))+import System.Environment as Exports+import System.Exit as Exports+import System.IO as Exports (Handle, hClose)+import System.IO.Error as Exports+import System.IO.Unsafe as Exports+import System.Mem as Exports+import System.Mem.StableName as Exports+import System.Timeout as Exports+import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)+import Text.Printf as Exports (printf, hPrintf)+import Text.Read as Exports (Read(..), readMaybe, readEither)+import Unsafe.Coerce as Exports
list-t.cabal view
@@ -1,7 +1,7 @@ name: list-t version:- 1.0.0.1+ 1.0.1 synopsis: ListT done right description:@@ -39,17 +39,20 @@ library hs-source-dirs: library- other-modules: exposed-modules: ListT+ other-modules:+ ListT.Prelude build-depends: mmorph == 1.*, monad-control >= 0.3 && < 2, mtl == 2.*, transformers-base == 0.4.*, transformers >= 0.3 && < 0.6,- base-prelude < 2, base < 5+ if !impl(ghc >= 8.0)+ build-depends:+ semigroups >= 0.11 && < 0.19 default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, PolyKinds, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples default-language: