Mutable references in the (strict) ST monad (re-export of Data.STRef)
Convert a strict ST computation into a lazy one. The strict state thread passed to strictToLazyST is not performed until the result of the lazy state thread it returns is demanded.
Strict RWS monad.
Inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://web.cecs.pdx.edu/~mpj/) Advanced School of Functional Programming, 1995.
Strict state monads.
This module is inspired by the paper Functional Programming with Overloading and Higher-Order Polymorphism, Mark P Jones (http://web.cecs.pdx.edu/~mpj/) Advanced School of Functional Programming, 1995.
A monad transformer that combines ReaderT, WriterT and StateT. This version is strict; for a lazy version, see Control.Monad.Trans.RWS.Lazy, which has the same interface.
Strict state monads, passing an updatable state through a computation. See below for examples.
In this version, sequencing of computations is strict. For a lazy version, see Control.Monad.Trans.State.Lazy, which has the same interface.
Some computations may not require the full power of state transformers:
* For a read-only state, see Control.Monad.Trans.Reader.
* To accumulate a value without using it on the way, see Control.Monad.Trans.Writer.
The strict WriterT monad transformer, which adds collection of outputs (such as a count or string output) to a given monad.
This version builds its output strictly; for a lazy version, see Control.Monad.Trans.Writer.Lazy, which has the same interface.
This monad transformer provides only limited access to the output during the computation. For more general access, use Control.Monad.Trans.State instead.
This package provides strict versions of some standard Haskell data types (pairs, Maybe and Either). It also contains strict IO operations.
This package provides head normal form strict versions of some standard Haskell concurrency abstractions (MVars,Chans), which provide control over where evaluation takes place not offered by the default lazy types. This may be useful for deciding when and where evaluation occurs, leading to improved time or space use, depending on the circumstances.
This library is a thin layer on top standard IO modules like System.IO and Data.IORef that re-expose these functions under a different type, namely SIO.
A benchmarking library with a simple purpose: to strictly evaluate a value and report how long it takes.
Can be useful to identify the slow part of an algorithm, since Haskell's lazy evaluation can make it hard to see where the bottleneck lies.
strictBufferOp is the BufferOp definition over ByteStrings, the non-lazy kind.
Find a local optimum of strictness annotations.
Check the invariant strictly.
Produces XHTML 1.0 Strict.
Convert a lazy ST computation into a strict one.
This is a strict version of the Get monad from the binary package. It's pretty much just a copy and paste job from the original source code. The binary team are currently unsure about their future plans w.r.t. strictness, so this is just a stop gap measure. See http://www.haskell.org/haskellwiki/DealingWithBinaryData for documentation.
O(c) Convert a strict Text into a lazy Text.
Returns a new URI which represents the value of the first URI interpreted as relative to the second URI. For example:
> "foo" `relativeTo` "http://bar.org/" = "http://bar.org/foo"
> "http:foo" `nonStrictRelativeTo` "http://bar.org/" = "http://bar.org/foo"
Algorithm from RFC3986 , section 5.2.2
O(n) Convert a lazy Text into a strict Text.