- Monads are not fundamental to computation.
- Monads are but one type of structure that can be described in Haskell (others include groups, monoids, semilattices and posets).
- The IO constructor and its monadic interface allow embedding of imperative programs in Haskell.
- Whenever we ask ourselves if there is anything special about IO, we really should be asking if there is anything special about imperative programming.
- Imperative programming is mainly of historical interest
- It is widely known that imperative programming does not scale.
- The future of programming will probably not be imperative.
- We should move away from relying on the
IO constructor in Haskell.
Further reading #