Strafunski-StrategyLib-5.0.0.10: Library for strategic programming

Safe HaskellNone
LanguageHaskell98

Data.Generics.Strafunski.StrategyLib.Models.Deriving.StrategyPrimitives

Documentation

class Data x => Term x #

Instances

(Typeable * x, Data x) => Term x # 

data Monad m => TP m #

Instances

StrategyMSubst TP # 

Methods

msubstS :: (Monad m, Monad m') => (forall t. m t -> m' t) -> TP m -> TP m' #

(Monad m, MonadPlus m, Strategy TP m) => StrategyPlus TP m # 

Methods

failS :: TP m #

choiceS :: TP m -> TP m -> TP m #

oneS :: TP m -> TP m #

(Monad m, Strategy TP m) => StrategyMonoid TP m # 

Methods

skipS :: TP m #

allS :: TP m -> TP m #

combS :: TP m -> TP m -> TP m #

Monad m => Strategy TP m # 

Methods

voidS :: TP m -> TU () m #

seqS :: TP m -> TP m -> TP m #

passS :: TU a m -> (a -> TP m) -> TP m #

(Monad m, Term t) => StrategyApply TP m t t # 

Methods

applyS :: TP m -> t -> m t #

adhocS :: TP m -> (t -> m t) -> TP m #

data Monad m => TU a m #

Instances

StrategyMSubst (TU a) # 

Methods

msubstS :: (Monad m, Monad m') => (forall t. m t -> m' t) -> TU a m -> TU a m' #

(Monad m, MonadPlus m, Strategy (TU u) m) => StrategyPlus (TU u) m # 

Methods

failS :: TU u m #

choiceS :: TU u m -> TU u m -> TU u m #

oneS :: TU u m -> TU u m #

(Monad m, Monoid u, Strategy (TU u) m) => StrategyMonoid (TU u) m # 

Methods

skipS :: TU u m #

allS :: TU u m -> TU u m #

combS :: TU u m -> TU u m -> TU u m #

Monad m => Strategy (TU a) m # 

Methods

voidS :: TU a m -> TU () m #

seqS :: TP m -> TU a m -> TU a m #

passS :: TU a m -> (a -> TU a m) -> TU a m #

(Monad m, Term t) => StrategyApply (TU a) m t a # 

Methods

applyS :: TU a m -> t -> m a #

adhocS :: TU a m -> (t -> m a) -> TU a m #

paraTP :: Monad m => (forall t. t -> m t) -> TP m #

paraTU :: Monad m => (forall t. t -> m a) -> TU a m #

applyTP :: (Monad m, Data x) => TP m -> x -> m x #

applyTU :: (Monad m, Data x) => TU a m -> x -> m a #

adhocTP :: (Monad m, Data t) => TP m -> (t -> m t) -> TP m #

adhocTU :: (Monad m, Data t) => TU a m -> (t -> m a) -> TU a m #

msubstTP :: (Monad m, Monad m') => (forall t. m t -> m' t) -> TP m -> TP m' #

msubstTU :: (Monad m, Monad m') => (m a -> m' a) -> TU a m -> TU a m' #

seqTP :: Monad m => TP m -> TP m -> TP m #

seqTU :: Monad m => TP m -> TU a m -> TU a m #

passTP :: Monad m => TU a m -> (a -> TP m) -> TP m #

passTU :: Monad m => TU a m -> (a -> TU b m) -> TU b m #

choiceTP :: MonadPlus m => TP m -> TP m -> TP m #

choiceTU :: MonadPlus m => TU a m -> TU a m -> TU a m #

mchoicesTP :: (Monad m, MonadPlus (t m), MonadUnTrans MaybeAlg t) => [TP (t m)] -> TP m -> TP m #

mchoicesTU :: (Monad m, MonadPlus (t m), MonadUnTrans MaybeAlg t) => [TU a (t m)] -> TU a m -> TU a m #

allTP :: Monad m => TP m -> TP m #

allTU :: Monad m => (a -> a -> a) -> a -> TU a m -> TU a m #

allTU' :: (Monad m, Monoid a) => TU a m -> TU a m #

oneTP :: MonadPlus m => TP m -> TP m #

oneTU :: MonadPlus m => TU a m -> TU a m #

anyTP :: MonadPlus m => TP m -> TP m #

anyTU :: MonadPlus m => (a -> a -> a) -> a -> TU a m -> TU a m #

anyTU' :: (MonadPlus m, Monoid a) => TU a m -> TU a m #

someTP :: MonadPlus m => TP m -> TP m #

someTU :: MonadPlus m => (a -> a -> a) -> a -> TU a m -> TU a m #

someTU' :: (Monoid a, MonadPlus m) => TU a m -> TU a m #

injTP :: MonadPlus m => TP m -> TP m #