Safe Haskell | None |
---|---|
Language | Haskell2010 |
IO effects
Synopsis
- fromStdin :: Emitter IO Text
- toStdout :: Committer IO Text
- fromStdinN :: Int -> CoEmitter IO Text
- toStdoutN :: Int -> CoCommitter IO Text
- readStdin :: Read a => Emitter IO a
- showStdout :: Show a => Committer IO a
- handleE :: Handle -> Emitter IO Text
- handleC :: Handle -> Committer IO Text
- refCommitter :: MonadConc m => m (Committer m a, m [a])
- refEmitter :: MonadConc m => [a] -> m (Emitter m a)
- fileE :: FilePath -> CoEmitter IO Text
- fileWriteC :: FilePath -> CoCommitter IO Text
- fileAppendC :: FilePath -> CoCommitter IO Text
Documentation
toStdout :: Committer IO Text Source #
Commit to stdout
>>>
commit toStdout ("I'm committed!" :: Text)
I'm committed! True
fromStdinN :: Int -> CoEmitter IO Text Source #
Finite console emitter
λ> toListM <$|> fromStdinN 2 hello hello again ["hello","hello again"]
toStdoutN :: Int -> CoCommitter IO Text Source #
Finite console committer
>>>
glue <$> contramap (pack . show) <$> (toStdoutN 2) <*|> qList [1..3]
1 2
readStdin :: Read a => Emitter IO a Source #
Read from console, throwing away read errors
λ> glueN 2 showStdout (readStdin :: Emitter IO Int) 1 1 hippo 2
showStdout :: Show a => Committer IO a Source #
Show to stdout
>>>
glue showStdout <$|> qList [1..3]
1 2 3
refCommitter :: MonadConc m => m (Committer m a, m [a]) Source #
Commit to an IORef
>>>
(c1,l1) <- refCommitter :: IO (Committer IO Int, IO [Int])
>>>
glue c1 <$|> qList [1..3]
>>>
l1
[1,2,3]
refEmitter :: MonadConc m => [a] -> m (Emitter m a) Source #
Emit from a list IORef
>>>
e <- refEmitter [1..3]
>>>
toListM e
[1,2,3]
fileWriteC :: FilePath -> CoCommitter IO Text Source #
Commit lines of Text to a file.
fileAppendC :: FilePath -> CoCommitter IO Text Source #
Commit lines of Text, appending to a file.