As of March 2020, School of Haskell has been switched to read-only mode. Monad transformers are the standard way to extend monads. The transformers package defines monad transformers. StateT, one of the representative monad transformers, has three parameters: newtype StateT s m a = StateT { runStateT :: s -> m (a, s) }The second parameter m allows you to add a new type of effect while preserving t