monad-par-0.1.0.3: A library for parallel programming based on a monad

Safe Haskell | None

Control.Monad.Par.IList

Synopsis

- data IList a
  - = Null
  - | Cons {
    - hd :: a
    - tl :: IVar (IList a)
    }

# Documentation

data IList a Source

An `IList` is the equivalent of a lazy list in the `Par` monad. The tail of the list is an `IVar`, which allows the list to be produced and consumed in parallel.

Constructors

Null |
Cons |

Fields

hd :: a
tl :: IVar (IList a)

Instances

NFData a => NFData (IList a) | To fully evaluate an `IList` means to evaluate both the head and tail. This does not evaluate the entire spine of the list of course, because the tail is an `IVar`.