compilation-0.0.0.2: Control/Compilation/Module.hs
----------------------------------------------------------------
--
-- | Compilation
-- Monad and combinators for quickly assembling simple
-- compilers.
--
-- @Control\/Compilation\/Module.hs@
--
-- State extension class and combinators for implementations
-- of a state that support module name specification.
--
----------------------------------------------------------------
--
module Control.Compilation.Module
where
import Control.Compilation
----------------------------------------------------------------
-- | State extension class definition, including combinators.
class StateExtension a => Module a where
project :: a -> String
inject :: String -> a -> a
setModule :: String -> Compilation a ()
setModule m =
do s <- get
set $ inject m s
getModule :: Compilation a String
getModule =
do s <- get
return $ project s
--eof