hermit-1.0.0.0: Haskell Equational Reasoning Model-to-Implementation Tunnel

Safe HaskellNone
LanguageHaskell2010

HERMIT.Dictionary.Remembered

Contents

Synopsis

Remembering definitions.

rememberR :: (AddBindings c, ExtendPath c Crumb, ReadPath c Crumb, HasLemmas m, MonadCatch m) => LemmaName -> Transform c m Core () Source

Remember a binding with a name for later use. Allows us to look at past definitions.

unfoldRememberedR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, LemmaContext c, ReadBindings c, ReadPath c Crumb, HasLemmas m, MonadCatch m, MonadUnique m) => Used -> LemmaName -> Rewrite c m CoreExpr Source

Unfold a remembered definition (like unfoldR, but looks in stash instead of context).

foldRememberedR :: (AddBindings c, ExtendPath c Crumb, HasEmptyContext c, LemmaContext c, ReadBindings c, ReadPath c Crumb, HasLemmas m, MonadCatch m, MonadUnique m) => Used -> LemmaName -> Rewrite c m CoreExpr Source

Fold a remembered definition (like foldR, but looks in stash instead of context).

compileRememberedT :: (LemmaContext c, HasLemmas m, Monad m) => Transform c m x CompiledFold Source

Compile all remembered definitions into something that can be run with runFoldR