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

Safe HaskellSafe-Infered

Control.Monad.Par.Scheds.Trace

Description

This is the scheduler described in the paper A Monad for Deterministic Parallelism. It is based on a lazy Trace data structure that separates the scheduler from the Par monad method implementations.

Synopsis

Documentation

runPar :: Par a -> a

The main way to run a Par computation

fork :: Par () -> Par ()

data IVar a

new :: Par (IVar a)

newFull :: NFData a => a -> Par (IVar a)

newFull_ :: a -> Par (IVar a)

get :: IVar a -> Par a

put :: NFData a => IVar a -> a -> Par ()

put_ :: IVar a -> a -> Par ()

spawn :: NFData a => Par a -> Par (IVar a)

spawn_ :: Par a -> Par (IVar a)

spawnP :: NFData a => a -> Par (IVar a)