niagra-0.1.0: CSS EDSL for Haskell

Copyright(c) Nathaniel Symer, 2015
LicenseMIT
Maintainernate@symer.io
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Data.Niagra.Monad

Description

NiagraT is a monad transformer based on RWST. It stores no readonly state, a writeonly state with type [Block], and a and a readwrite state with type Selector.

Synopsis

Documentation

newtype NiagraT m a Source

NiagraT monad transformer.

Constructors

NiagraT (RWST () (Seq Block) (Seq (Selector, Seq Declaration)) m a) 

Instances

Monad m => Monad (NiagraT m) Source 
Functor m => Functor (NiagraT m) Source 
Monad m => Applicative (NiagraT m) Source 
MonadIO m => MonadIO (NiagraT m) Source 
Monad m => MonadWriter (Seq Block) (NiagraT m) Source 
Monad m => MonadState (Seq (Selector, Seq Declaration)) (NiagraT m) Source 

execNiagraT :: Monad m => Selector -> NiagraT m () -> m [Block] Source

Evaluate a NiagraT monadic action.

withNewScope :: Monad m => Selector -> NiagraT m () -> NiagraT m () Source

Run an act in a fresh NiagraT state.

getCurrentBlock :: Monad m => NiagraT m Block Source

Get a Block from the current NiagraT state.

addBlock :: Monad m => Block -> NiagraT m () Source

Add a Block to the NiagraT writer state.

addDeclaration :: Monad m => Declaration -> NiagraT m () Source

Add a declaration to the NiagraT state.