But we use monads to express nondeterministic computations, errors, different models of state (STM, mutable state, restricted forms of state), and various other unconventional models of computation that are surprisingly useful once you recognize them.