Я уже упоминал, что IO не удовлетворяет законам монады, но я не нашел простого примера, показывающего это. Кто-нибудь знает пример? Спасибо.
  Изменить: Как ertes и n.m. указал, что использование seq несколько незаконно, поскольку оно может заставить любую монаду нарушить законы (в сочетании с undefined). Так как undefined можно рассматривать как непереходное вычисление, он отлично подходит для его использования.
Итак, пересмотренный вопрос:  Кто-нибудь знает пример, показывающий, что IO не удовлетворяет законам монады, не используя seq? (или, возможно, доказательство того, что IO законов, если seq не допускается?)