Use pure instead of (:[])
Define operators directly
Add state to Environment
Adjust declaration order
Add newtype EnvT
Add setState