chatty-0.7.0.0: Some monad transformers and typeclasses for abstraction of global dependencies.

Safe HaskellSafe
LanguageHaskell2010

Text.Chatty.Expansion.Vars

Synopsis

Documentation

data EnvVar Source

Some environment variable

Constructors

NotSet

Not set.

Literal String

An embeddable string.

forall a . Show a => Scalar a

Something we can show.

Array [EnvVar]

Array of that

Instances

newtype ExpanderT m a Source

Environment storage and variable expander.

Constructors

Expander 

Fields

runExpanderT :: [(String, EnvVar)] -> m (a, [(String, EnvVar)])
 

localEnvironment :: Functor m => ExpanderT m a -> m a Source

Run this function inside a blank environment.

forkEnvironment :: (Functor m, Monad m, MonadIO m) => ExpanderT m a -> m a Source

Run this function in a locally modifiable, but not exported environment

exportAll :: (Monad m, MonadIO m) => ExpanderT m () Source

Export this local environment.

expandVars :: (Monad m, Functor m, ChExpanderEnv m) => String -> m String Source

Expand $variables

isAnum :: Char -> Bool Source

Is alphanumeric?

class Monad ee => ChExpanderEnv ee where Source

Typeclass for all environment storages.

Methods

mgetv :: String -> ee EnvVar Source

Get environment variable

mputv :: String -> EnvVar -> ee () Source

Put environment variable