module Network.Spata.Type where

import Data.DList (DList)
import Control.Monad.Writer

type Assoc = [(String, String)]
type Guard = String -> Assoc -> Either String Assoc
type Guards = [String] -> Assoc -> Either String Assoc
type Task = Assoc -> Either String Assoc

type GuardiansT a = Writer (DList Task) a
type Guardians = GuardiansT ()