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

Safe HaskellSafe-Infered



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.



runPar :: Par a -> aSource

The main way to run a Par computation

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

newFull_ :: a -> Par (IVar a)Source

get :: IVar a -> Par aSource

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

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

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

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

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