Portability | portable (depends on ghc) |
---|---|
Stability | provisional |
Maintainer | bastiaan.heeren@ou.nl |
Safe Haskell | None |
- data Strategy a
- class IsStrategy f where
- toStrategy :: f a -> Strategy a
- data LabeledStrategy a
- label :: (IsId l, IsStrategy f) => l -> f a -> LabeledStrategy a
- unlabel :: LabeledStrategy a -> Strategy a
- fullDerivationTree :: IsStrategy f => f a -> a -> DerivationTree (Step LabelInfo a) a
- derivationTree :: IsStrategy f => f a -> a -> DerivationTree (Rule a, Environment) a
- rulesInStrategy :: IsStrategy f => f a -> [Rule a]
- mapRules :: (Rule a -> Rule b) -> LabeledStrategy a -> LabeledStrategy b
- mapRulesS :: (Rule a -> Rule b) -> Strategy a -> Strategy b
- cleanUpStrategy :: (a -> a) -> LabeledStrategy a -> LabeledStrategy a
- cleanUpStrategyAfter :: (a -> a) -> LabeledStrategy a -> LabeledStrategy a
- toCore :: Strategy a -> Core LabelInfo a
- fromCore :: Core LabelInfo a -> Strategy a
- liftCore :: IsStrategy f => (Core LabelInfo a -> Core LabelInfo a) -> f a -> Strategy a
- liftCore2 :: (IsStrategy f, IsStrategy g) => (Core LabelInfo a -> Core LabelInfo a -> Core LabelInfo a) -> f a -> g a -> Strategy a
- makeLabeledStrategy :: IsStrategy f => LabelInfo -> f a -> LabeledStrategy a
- toLabeledStrategy :: Monad m => Strategy a -> m (LabeledStrategy a)
- data LabelInfo
- processLabelInfo :: (l -> LabelInfo) -> Core l a -> Core l a
- changeInfo :: IsLabeled f => (LabelInfo -> LabelInfo) -> f a -> LabeledStrategy a
- makeInfo :: IsId a => a -> LabelInfo
- removed :: LabelInfo -> Bool
- collapsed :: LabelInfo -> Bool
- hidden :: LabelInfo -> Bool
- class IsLabeled f where
- toLabeled :: f a -> LabeledStrategy a
- noInterleaving :: IsStrategy f => f a -> Strategy a
Documentation
Abstract data type for strategies
class IsStrategy f whereSource
Type class to turn values into strategies
toStrategy :: f a -> Strategy aSource
data LabeledStrategy a Source
A strategy which is labeled with a string
label :: (IsId l, IsStrategy f) => l -> f a -> LabeledStrategy aSource
unlabel :: LabeledStrategy a -> Strategy aSource
Removes the label from a strategy
fullDerivationTree :: IsStrategy f => f a -> a -> DerivationTree (Step LabelInfo a) aSource
Returns the derivation tree for a strategy and a term, including all minor rules
derivationTree :: IsStrategy f => f a -> a -> DerivationTree (Rule a, Environment) aSource
Returns the derivation tree for a strategy and a term with only major rules
rulesInStrategy :: IsStrategy f => f a -> [Rule a]Source
Returns a list of all major rules that are part of a labeled strategy
mapRules :: (Rule a -> Rule b) -> LabeledStrategy a -> LabeledStrategy bSource
Apply a function to all the rules that make up a labeled strategy
cleanUpStrategy :: (a -> a) -> LabeledStrategy a -> LabeledStrategy aSource
Use a function as do-after hook for all rules in a labeled strategy, but also use the function beforehand
cleanUpStrategyAfter :: (a -> a) -> LabeledStrategy a -> LabeledStrategy aSource
Use a function as do-after hook for all rules in a labeled strategy
liftCore2 :: (IsStrategy f, IsStrategy g) => (Core LabelInfo a -> Core LabelInfo a -> Core LabelInfo a) -> f a -> g a -> Strategy aSource
makeLabeledStrategy :: IsStrategy f => LabelInfo -> f a -> LabeledStrategy aSource
toLabeledStrategy :: Monad m => Strategy a -> m (LabeledStrategy a)Source
processLabelInfo :: (l -> LabelInfo) -> Core l a -> Core l aSource
changeInfo :: IsLabeled f => (LabelInfo -> LabelInfo) -> f a -> LabeledStrategy aSource
toLabeled :: f a -> LabeledStrategy aSource
noInterleaving :: IsStrategy f => f a -> Strategy aSource