mutable-iter 0.3 → 0.4
raw patch · 2 files changed
+7/−7 lines, 2 filesdep ~iterateedep ~vectorPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: iteratee, vector
API changes (from Hackage documentation)
- Data.MutableIter: instance (MonadCatchIO m, Storable el) => Monad (MIteratee (IOBuffer r el) m)
- Data.MutableIter: instance (MonadCatchIO m, Storable el) => MonadIO (MIteratee (IOBuffer r el) m)
- Data.MutableIter: instance (Storable el) => MonadTrans (MIteratee (IOBuffer s el))
- Data.MutableIter.IOBuffer: instance (Storable el) => NullPoint (IOBuffer r el)
+ Data.MutableIter: instance (MonadIO m, Storable el) => Monad (MIteratee (IOBuffer r el) m)
+ Data.MutableIter: instance (MonadIO m, Storable el) => MonadIO (MIteratee (IOBuffer r el) m)
+ Data.MutableIter: instance Storable el => MonadTrans (MIteratee (IOBuffer s el))
+ Data.MutableIter.IOBuffer: instance Storable el => NullPoint (IOBuffer r el)
- Data.MutableIter: createIOBuffer :: (Storable el) => Int -> ForeignPtr Int -> ForeignPtr el -> IOBuffer r el
+ Data.MutableIter: createIOBuffer :: Storable el => Int -> ForeignPtr Int -> ForeignPtr el -> IOBuffer r el
- Data.MutableIter: idone :: (Monad m) => a -> Stream s -> MIteratee s m a
+ Data.MutableIter: idone :: Monad m => a -> Stream s -> MIteratee s m a
- Data.MutableIter: joinIM :: (Monad m) => m (MIteratee (IOBuffer r el) m a) -> MIteratee (IOBuffer r el) m a
+ Data.MutableIter: joinIM :: Monad m => m (MIteratee (IOBuffer r el) m a) -> MIteratee (IOBuffer r el) m a
- Data.MutableIter: liftI :: (Monad m) => (Stream s -> MIteratee s m a) -> MIteratee s m a
+ Data.MutableIter: liftI :: Monad m => (Stream s -> MIteratee s m a) -> MIteratee s m a
- Data.MutableIter: newFp :: (Storable a) => a -> IO (ForeignPtr a)
+ Data.MutableIter: newFp :: Storable a => a -> IO (ForeignPtr a)
- Data.MutableIter: wrapEnum :: (Monad m) => Enumerator s m a -> MEnumerator s m a
+ Data.MutableIter: wrapEnum :: Monad m => Enumerator s m a -> MEnumerator s m a
- Data.MutableIter.Binary: endianRead2 :: (MonadCatchIO m) => Endian -> MIteratee (IOBuffer r Word8) m Word16
+ Data.MutableIter.Binary: endianRead2 :: MonadCatchIO m => Endian -> MIteratee (IOBuffer r Word8) m Word16
- Data.MutableIter.Binary: endianRead3 :: (MonadCatchIO m) => Endian -> MIteratee (IOBuffer r Word8) m Word32
+ Data.MutableIter.Binary: endianRead3 :: MonadCatchIO m => Endian -> MIteratee (IOBuffer r Word8) m Word32
- Data.MutableIter.Binary: endianRead4 :: (MonadCatchIO m) => Endian -> MIteratee (IOBuffer r Word8) m Word32
+ Data.MutableIter.Binary: endianRead4 :: MonadCatchIO m => Endian -> MIteratee (IOBuffer r Word8) m Word32
- Data.MutableIter.IOBuffer: append :: (Storable el) => IOBuffer r el -> IOBuffer r el -> IO (IOBuffer r el)
+ Data.MutableIter.IOBuffer: append :: Storable el => IOBuffer r el -> IOBuffer r el -> IO (IOBuffer r el)
- Data.MutableIter.IOBuffer: copyBuffer :: (Storable el) => IOBuffer r el -> IO (IOBuffer r el)
+ Data.MutableIter.IOBuffer: copyBuffer :: Storable el => IOBuffer r el -> IO (IOBuffer r el)
- Data.MutableIter.IOBuffer: createIOBuffer :: (Storable el) => Int -> ForeignPtr Int -> ForeignPtr el -> IOBuffer r el
+ Data.MutableIter.IOBuffer: createIOBuffer :: Storable el => Int -> ForeignPtr Int -> ForeignPtr el -> IOBuffer r el
- Data.MutableIter.IOBuffer: dropWhile :: (Storable el) => (el -> Bool) -> IOBuffer r el -> IO ()
+ Data.MutableIter.IOBuffer: dropWhile :: Storable el => (el -> Bool) -> IOBuffer r el -> IO ()
- Data.MutableIter.IOBuffer: empty :: (Storable el) => IOBuffer r el
+ Data.MutableIter.IOBuffer: empty :: Storable el => IOBuffer r el
- Data.MutableIter.IOBuffer: foldl' :: (Storable b) => (a -> b -> a) -> a -> IOBuffer r b -> IO a
+ Data.MutableIter.IOBuffer: foldl' :: Storable b => (a -> b -> a) -> a -> IOBuffer r b -> IO a
- Data.MutableIter.IOBuffer: freeze :: (Storable el) => IOBuffer r el -> IO (Vector el)
+ Data.MutableIter.IOBuffer: freeze :: Storable el => IOBuffer r el -> IO (Vector el)
- Data.MutableIter.IOBuffer: hPut :: (Storable el) => Handle -> IOBuffer r el -> IO ()
+ Data.MutableIter.IOBuffer: hPut :: Storable el => Handle -> IOBuffer r el -> IO ()
- Data.MutableIter.IOBuffer: lookAtHead :: (Storable el) => IOBuffer r el -> IO (Maybe el)
+ Data.MutableIter.IOBuffer: lookAtHead :: Storable el => IOBuffer r el -> IO (Maybe el)
- Data.MutableIter.IOBuffer: pop :: (Storable el) => IOBuffer r el -> IO el
+ Data.MutableIter.IOBuffer: pop :: Storable el => IOBuffer r el -> IO el
- Data.MutableIter.IOBuffer: splitAt :: (Storable el) => IOBuffer r el -> Int -> IO (IOBuffer r el, IOBuffer r el)
+ Data.MutableIter.IOBuffer: splitAt :: Storable el => IOBuffer r el -> Int -> IO (IOBuffer r el, IOBuffer r el)
- Data.MutableIter.IOBuffer: take :: (Storable el) => IOBuffer r el -> Int -> IO (IOBuffer r el)
+ Data.MutableIter.IOBuffer: take :: Storable el => IOBuffer r el -> Int -> IO (IOBuffer r el)
Files
- mutable-iter.cabal +4/−4
- src/Data/MutableIter.hs +3/−3
mutable-iter.cabal view
@@ -1,5 +1,5 @@ Name: mutable-iter-Version: 0.3+Version: 0.4 Synopsis: iteratees based upon mutable buffers Description: Provides iteratees backed by mutable buffers. This enables iteratees to run without any extra memory allocations. Homepage: http://tanimoto.us/~jwlato/haskell/mutable-iter@@ -9,7 +9,7 @@ Maintainer: jwlato@gmail.com Copyright: John W. Lato, 2010 Stability: Experimental-Tested-with: GHC == 6.12.1+Tested-with: GHC == 6.12.3 Category: Data Build-type: Simple @@ -28,7 +28,7 @@ ,Data.MutableIter.IOBuffer Build-depends: base >= 4 && < 6,- iteratee >= 0.5 && < 0.6,+ iteratee >= 0.5 && < 0.7, MonadCatchIO-transformers >= 0.2 && < 0.3, transformers >= 0.2 && < 0.3,- vector >= 0.4 && < 0.8+ vector >= 0.4 && < 0.9
src/Data/MutableIter.hs view
@@ -54,13 +54,13 @@ import System.IO -isNullChunk :: (MonadCatchIO s) => I.Stream (IOBuffer r el) -> s Bool+isNullChunk :: (MonadIO s) => I.Stream (IOBuffer r el) -> s Bool isNullChunk (I.EOF _) = return False isNullChunk (I.Chunk s) = liftIO $ null s newtype MIteratee s m a = MIteratee {unwrap :: I.Iteratee s m a} deriving (Functor) -instance (MonadCatchIO m, Storable el) => Monad (MIteratee (IOBuffer r el) m) where+instance (MonadIO m, Storable el) => Monad (MIteratee (IOBuffer r el) m) where {-# INLINE return #-} return x = MIteratee (I.Iteratee $ \onDone _ -> onDone x (I.Chunk empty)) -- {-# INLINE (>>=) #-} -- this inline makes things a bit slower with 6.12. Seems fixed in ghc-7@@ -77,7 +77,7 @@ instance (Storable el) => MonadTrans (MIteratee (IOBuffer s el)) where lift m = MIteratee $ I.Iteratee $ \od _ -> m >>= flip od (I.Chunk empty) -instance (MonadCatchIO m, Storable el)+instance (MonadIO m, Storable el) => MonadIO (MIteratee (IOBuffer r el) m) where liftIO = lift . liftIO