Skip to content
Snippets Groups Projects
Example.hs 330 B
Newer Older
Martin Ring's avatar
Martin Ring committed
module Example where

import Control.Monad.Identity
import StateMonadT
import ExnMonadT

type State = Int
type Error = String

type ResMonad a = StateT (ExnT Identity Error) State a 

exm1 :: ResMonad Int
exm1 = do a<- get id
          if (a == 0) then lift $ err "NULL!"
	              else set  $ \_ -> a+1
          return a