Safe Haskell | Safe-Inferred |
---|
Control.Compilation.Environment
Description
Compilation Monad and combinators for quickly assembling simple compilers.
Control/Compilation/Environment.hs
State extension class and combinators for implementations of a state that support an environment (i.e., lookup table or dictionary) data structure or structures.
- type StateExtensionEnv a = [(String, a)]
- class StateExtension a => HasEnvironment a b where
- project :: a -> StateExtensionEnv b
- inject :: StateExtensionEnv b -> a -> a
- addEnv :: String -> b -> Compilation a ()
- popEnv :: Compilation a ()
- dropEnv :: Int -> Compilation a ()
- lookupEnv :: String -> Compilation a (Maybe b)
- setEnv :: StateExtensionEnv b -> Compilation a ()
- getEnv :: Compilation a (StateExtensionEnv b)
Documentation
type StateExtensionEnv a = [(String, a)]Source
Type synonyms and class memberships.
class StateExtension a => HasEnvironment a b whereSource
State extension class definition.
Methods
project :: a -> StateExtensionEnv bSource
inject :: StateExtensionEnv b -> a -> aSource
addEnv :: String -> b -> Compilation a ()Source
popEnv :: Compilation a ()Source
dropEnv :: Int -> Compilation a ()Source
lookupEnv :: String -> Compilation a (Maybe b)Source
setEnv :: StateExtensionEnv b -> Compilation a ()Source
getEnv :: Compilation a (StateExtensionEnv b)Source