Согласно «Истории Хаскелла: быть ленивым с классом» (см. Раздел 7), изначально рассматривались три разные модели: потоки , продолжения и «прохождение мира» (я не знаю много о Чистоте, но, похоже, это Чистый путь ?).
Последний абзац раздела 7.2 указывает, что концепция типа уникальности не была разработана в это время:
Однако эта «проходящая по миру» модель никогда не была серьезным соперником для Haskell, потому что мы не видели простого способа обеспечить «однопоточный» доступ к мировому государству. (Дизайнеры Clean в конечном итоге решили эту проблему с помощью «типов уникальности»)
Концепция монад, кажется, была введена (повторно использована из другой работы) в более поздних версиях Haskell, поскольку она привела к более чистому коду (по сравнению с продолжениями / потоками):
Монадный подход быстро доминировал над ранними моделями. Типы более компактны и более информативны.