-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Sequence ID IO-Streams -- @package seqid-streams @version 0.3.1 module System.IO.Streams.SequenceId -- | Wrap an InputStream and check for dropped or duplicated -- sequence IDs. -- -- Example: -- --
--   ghci> fromList [1..10 :: SequenceId] >>= sequenceIdInputStream 0 id (fail . show) >>= toList
--   [1,2,3,4,5,6,7,8,9,10]
--   
--   ghci> fromList [5..10 :: SequenceId] >>= sequenceIdInputStream 0 id (fail . show) >>= toList
--   *** Exception: user error (SequenceIdError {errType = SequenceIdDropped, lastSeqId = 0, currSeqId = 5})
--   
--   ghci> fromList [1..10 :: SequenceId] >>= sequenceIdInputStream 5 id (fail . show) >>= toList
--   *** Exception: user error (SequenceIdError {errType = SequenceIdDuplicated, lastSeqId = 5, currSeqId = 1})
--   
sequenceIdInputStream :: SequenceId -> (a -> SequenceId) -> (SequenceIdError -> IO ()) -> InputStream a -> IO (InputStream a) -- | Wrap an OutputStream to give a sequence ID for each element -- written. -- -- Example: -- --
--   (outStream', getSeqId) <- sequenceIdOutputStream 1 outStream
--   return $ contramapM (addSeqId getSeqId) outStream'
--   
sequenceIdOutputStream :: SequenceId -> OutputStream a -> IO (OutputStream a, IO SequenceId)