| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Alga.Language.Environment
- data AlgaEnv m a
- class Monad m => HasEnv m where
- runAlgaEnv :: Monad m => AlgaEnv m a -> m a
- addDef :: HasEnv m => String -> SyntaxTree -> m ()
- remDef :: HasEnv m => String -> m ()
- clearDefs :: HasEnv m => m ()
- getPrin :: HasEnv m => String -> m SyntaxTree
- getSrc :: HasEnv m => String -> m Text
- fullSrc :: HasEnv m => m Text
- getRefs :: HasEnv m => m [String]
- purgeEnv :: HasEnv m => [String] -> m ()
- checkRecur :: HasEnv m => String -> SyntaxTree -> m Bool
Documentation
Monad that implements ALGA environment.
Instances
| Monad m => Monad (AlgaEnv m) Source # | |
| Functor m => Functor (AlgaEnv m) Source # | |
| Monad m => Applicative (AlgaEnv m) Source # | |
| MonadIO m => MonadIO (AlgaEnv m) Source # | |
| MonadThrow m => MonadThrow (AlgaEnv m) Source # | |
| MonadCatch m => MonadCatch (AlgaEnv m) Source # | |
| MonadMask m => MonadMask (AlgaEnv m) Source # | |
| MonadException m => MonadException (AlgaEnv m) Source # | |
| Monad m => HasEnv (AlgaEnv m) Source # | |
class Monad m => HasEnv m where Source #
Type class for things that can be considered ALGA environment.
Minimal complete definition
runAlgaEnv :: Monad m => AlgaEnv m a -> m a Source #
Run state monad with ALGA environment.
Arguments
| :: HasEnv m | |
| => String | Reference name |
| -> SyntaxTree | AST of its principle |
| -> m () |
Add a new definition to the environment.
Remove definition given its name.
clearDefs :: HasEnv m => m () Source #
Remove all definitions, restoring default state of environment.
Arguments
| :: HasEnv m | |
| => String | Reference name |
| -> m SyntaxTree | Syntax tree |
Get principle corresponding to given variable name.
Get source code of definition given its name.
Purge environment removing definitions that are not used in construction of “top-level” definitions.
Arguments
| :: HasEnv m | |
| => String | Reference name |
| -> SyntaxTree | Its syntax tree |
| -> m Bool |
Check if definition with given name is depends on itself.