Newer
Older
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