- Control.Monad.IO.Class
- Control.Monad.Trans.Class
- Control.Monad.Trans.Cont
- Control.Monad.Trans.Except
- Control.Monad.Trans.Maybe
- Control.Monad.Trans.State
- Data.Functor.Identity

Operation is deterministic, i.e., defined by exclusive rules and depend only on deterministic operations | ||

Operation might be non-deterministic, i.e., it is defined by overlapping rules or depend on non-deterministic operations |