spata-2010.10.10: src/Network/Spata/Type.hs
{-# LANGUAGE PackageImports #-}
module Network.Spata.Type where
import Data.DList (DList)
import "mtl" 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 ()
type GuardM m = String -> Assoc -> m (Either String Assoc)
type TaskM m = Assoc -> m (Either String Assoc)
type GuardiansTM a m = Writer (DList (TaskM m)) a
type GuardiansM m = GuardiansTM () m