Maintainer | bastiaan.heeren@ou.nl |
---|---|
Stability | provisional |
Portability | portable (depends on ghc) |
Safe Haskell | None |
Language | Haskell98 |
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.
(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