monad M = EnvT(Environ) Env data V = Wrong | Num Int | Fun (V -> M V) type Environ = [(String,V)]