| Portability | ghc |
|---|---|
| Stability | unstable |
| Maintainer | Andy Gill <andygill@ku.edu> |
Language.KURE.Translate
Description
- data Translate m dec exp1 exp2
- apply :: (Monoid dec, Monad m) => Translate m dec exp1 exp2 -> exp1 -> RewriteM m dec exp2
- runTranslate :: (Monoid dec, Monad m) => Translate m dec exp res -> dec -> exp -> m (Either String (res, dec, Int))
- transparently :: (Monoid dec, Monad m) => Translate m dec exp1 exp2 -> Translate m dec exp1 exp2
- translate :: (Monoid dec, Monad m) => (exp1 -> RewriteM m dec exp2) -> Translate m dec exp1 exp2
Documentation
data Translate m dec exp1 exp2 Source
Translate is a translation or strategy that translates between exp1 and exp2, with the posiblity of failure,
and remembers identity translations.
runTranslate :: (Monoid dec, Monad m) => Translate m dec exp res -> dec -> exp -> m (Either String (res, dec, Int))Source
runTranslate executes the translation, returning either a failure message,
or a success and the new parts of the environment.
transparently :: (Monoid dec, Monad m) => Translate m dec exp1 exp2 -> Translate m dec exp1 exp2Source
transparently marks a translate (or rewrite) as transparent, that is the identity status
of any internal applications of apply is preserved across the translate.
Note: transparently $ translate $ \ e -> return e is an identity rewrite.