lazyio-0.1.0.5: lazyio.cabal
Name: lazyio
Version: 0.1.0.5
License: BSD3
License-File: LICENSE
Author: Henning Thielemann <haskell@henning-thielemann.de>
Maintainer: Henning Thielemann <haskell@henning-thielemann.de>
Homepage: http://www.haskell.org/haskellwiki/Lazy_IO
Category: Monads, Control
Synopsis: Run IO actions lazily while respecting their order
Description:
Run IO actions lazily while respecting their order.
Running a value of the LazyIO monad in the IO monad is like starting a thread
which is however driven by its output.
That is, the LazyIO action is only executed as far as necessary
in order to provide the required data.
.
The package may help you to avoid stack overflows in @mapM@.
Say you have
.
> mapM f xs
.
where @xs@ is a long list. When run, you may encounter a stack overflow.
To prevent it, write instead:
.
> import qualified System.IO.Lazy as LazyIO
>
> LazyIO.run $ mapM (LazyIO.interleave . f) xs
.
The stack overflow is gone.
Tested-With: GHC==6.8.2, GHC==6.12.1
Tested-With: GHC==7.4.1, GHC==7.6.3
Cabal-Version: >=1.10
Build-Type: Simple
Extra-Source-Files:
CHANGES
Source-Repository head
type: darcs
location: http://code.haskell.org/~thielema/lazyio/
Source-Repository this
type: darcs
location: http://code.haskell.org/~thielema/lazyio/
tag: 0.1.0.5
Library
Build-Depends:
unsafe >=0.0 && <0.1,
transformers >=0.2 && <0.7,
base >=2 && <5
Default-Language: Haskell98
GHC-Options: -Wall
Hs-Source-Dirs: src
Exposed-Modules:
System.IO.Lazy
Other-Modules:
Data.ApplicativeChain
System.IO.Lazy.Applicative
Test-Suite test-lazyio
Type: exitcode-stdio-1.0
Default-Language: Haskell98
GHC-Options: -Wall
Build-Depends: lazyio, transformers, base
Main-Is: src/Test/Main.hs