| Maintainer | bastiaan.heeren@ou.nl |
|---|---|
| Stability | provisional |
| Portability | portable (depends on ghc) |
| Safe Haskell | None |
| Language | Haskell98 |
Ideas.Common.Strategy.Core
Description
The core strategy combinators. This module defines the interal data structure of a strategy, and some utility functions that operate directly on it.
- data GCore a
- = (GCore a) :*: (GCore a)
- | (GCore a) :|: (GCore a)
- | (GCore a) :>|> (GCore a)
- | (GCore a) :|>: (GCore a)
- | (GCore a) :%: (GCore a)
- | (GCore a) :@: (GCore a)
- | Label Id (GCore a)
- | Atomic (GCore a)
- | Not (GCore a)
- | Remove (GCore a)
- | Collapse (GCore a)
- | Hide (GCore a)
- | Succeed
- | Fail
- | Rule a
- | Var Int
- | Let (CoreEnv a) (GCore a)
- type Core a = GCore (Rule a)
- coreFix :: (GCore a -> GCore a) -> GCore a
- coreSubstAll :: GCore a -> GCore a
- substCoreVar :: Int -> GCore a -> GCore a -> GCore a
Documentation
A generalized Core expression, not restricted to rules. This makes GCore a (traversable and foldable) functor.
Constructors
| (GCore a) :*: (GCore a) infixr 5 | |
| (GCore a) :|: (GCore a) infixr 3 | |
| (GCore a) :>|> (GCore a) infixr 3 | |
| (GCore a) :|>: (GCore a) infixr 3 | |
| (GCore a) :%: (GCore a) infixr 2 | |
| (GCore a) :@: (GCore a) infixr 2 | |
| Label Id (GCore a) | |
| Atomic (GCore a) | |
| Not (GCore a) | |
| Remove (GCore a) | |
| Collapse (GCore a) | |
| Hide (GCore a) | |
| Succeed | |
| Fail | |
| Rule a | Generalized constructor (not restricted to rules) |
| Var Int | |
| Let (CoreEnv a) (GCore a) |
coreSubstAll :: GCore a -> GCore a Source