Strafunski-StrategyLib-5.0.0.9: Library for strategic programming

Safe HaskellNone
LanguageHaskell98

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

Documentation

class Data x => Term x Source #

Instances

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

data Monad m => TP m Source #

Instances

StrategyMSubst TP Source # 

Methods

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

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

Methods

failS :: TP m Source #

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

oneS :: TP m -> TP m Source #

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

Methods

skipS :: TP m Source #

allS :: TP m -> TP m Source #

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

Monad m => Strategy TP m Source # 

Methods

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

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

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

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

Methods

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

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

data Monad m => TU a m Source #

Instances

StrategyMSubst (TU a) Source # 

Methods

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

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

Methods

failS :: TU u m Source #

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

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

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

Methods

skipS :: TU u m Source #

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

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

Monad m => Strategy (TU a) m Source # 

Methods

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

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

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

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

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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