explicit-sharing-0.2: Explicit Sharing of Monadic Effects

Control.Monad.Sharing

Documentation

class MonadPlus m => Nondet m a whereSource

Methods

mapNondet :: (forall b. Nondet m b => m b -> m (m b)) -> a -> m aSource

eval :: Nondet m a => a -> m aSource

class MonadPlus m => Sharing m whereSource

Methods

share :: Nondet m a => m a -> m (m a)Source

Instances

shareRec :: (Sharing m, Nondet m a) => (m a -> m a) -> m (m a)Source