import IxEnvMT
import StateMT
import ImpUtils
{- An exmaple of using two environments -}
type M = WithEnv Int
( WithState Bool
( WithEnv Char
IO ))
intOne = at :: Z
intTwo = at :: S Z
test :: M ()
test = do
int <- getEnv intOne
char <- getEnv intTwo
io $ print int
io $ print char
main = withEnv 'a' $ withSt True $ withEnv 4 test