- data OpenList a
- empty :: OpenList a
- singleton :: a -> Par (OpenList a)
- cons :: NFData a => a -> OpenList a -> Par (OpenList a)
- head :: OpenList a -> a
- tail :: OpenList a -> Par (OpenList a)
- length :: Num t => OpenList a -> Par t
- close :: NFData a => OpenList a -> Par (OpenList a)
- join :: NFData a => OpenList a -> OpenList a -> Par (OpenList a)
- toList :: NFData a => OpenList a -> Par [a]
- fromList :: NFData a => [a] -> Par (OpenList a)
- toLazyList :: OpenList a -> Par [a]
- parMapM :: NFData a => (a1 -> Par a) -> OpenList a1 -> Par (OpenList a)
- parBuild :: NFData a => InclusiveRange -> (Int -> a) -> Par (OpenList a)
- parBuildM :: NFData a => InclusiveRange -> (Int -> Par a) -> Par (OpenList a)
- openlist_tests :: Test
- chaintest :: Int -> Par (IList Int)
- async_test :: IO ()
- lazy_chaintest :: Int -> Par [Int]
- data IList a
- newCell :: a -> Par (IList a)
Documentation
cons :: NFData a => a -> OpenList a -> Par (OpenList a)Source
Add an element to the front of an OpenList. Works irrespective | of whether the input is closed.
tail :: OpenList a -> Par (OpenList a)Source
Tail of an OpenList. Beware, if the list contains only one element (e.g. the result of tail will be null), it must be CLOSED for tail to work.
close :: NFData a => OpenList a -> Par (OpenList a)Source
Terminate a non-empty open list so that it cannot be extended further.
fromList :: NFData a => [a] -> Par (OpenList a)Source
Convert a list to an OpenList, open to extension at the tail.
toLazyList :: OpenList a -> Par [a]Source
Asynchronously convert an OpenList to a lazy list. Returns immediately.
parBuild :: NFData a => InclusiveRange -> (Int -> a) -> Par (OpenList a)Source
Build an OpenList with a divide-and-conquer parallel strategy.
parBuildM :: NFData a => InclusiveRange -> (Int -> Par a) -> Par (OpenList a)Source
Build an OpenList with a divide-and-conquer parallel strategy, allowing nested parallelism in the per-element computation.
async_test :: IO ()Source
lazy_chaintest :: Int -> Par [Int]Source