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