LogicGrowsOnTrees-1.1.0.2: a parallel implementation of logic programming using distributed tree exploration

Safe HaskellSafe-Inferred

LogicGrowsOnTrees.Parallel.Purity

Description

This module contains types that represent the purity of a tree, which is either pure, impure, or IO (a special case of impure).

Synopsis

Documentation

data Purity m n whereSource

The purity of a tree, which can be either Pure (for pure trees) or ImpureAtopIO (for impure trees); the latter case is restricted to monads that are instances of MonadIO and for which there exists a way to convert the monad into an IO action.

The two kind arguments, m and n, correspond to respectively the monad in on top of which the TreeT monad transformer is stacked and the monad in which the worker will be run.

Constructors

Pure :: Purity Identity IO 
ImpureAtopIO :: MonadIO m => (forall β. m β -> IO β) -> Purity m m 

io_purity :: Purity IO IOSource

The purity of trees in the IO monad.