Secondo Una storia di Haskell: essere pigri Con Class (vedere la sezione 7) inizialmente sono stati considerati tre diversi modelli: stream , continuations e "world passing" (I don So molto di Clean, ma sembra che questo sia il modo pulito?).
L'ultimo paragrafo della sezione 7.2 indica che il concetto di unicità non è stato sviluppato in questo momento:
This “world-passing” model was never a
serious contender for Haskell, however, because we saw no easy
way to ensure “single-threaded” access to the world state. (The
Clean designers eventually solved this problem through the use
of “uniqueness types”)
Il concetto di monade sembra essere stato introdotto (riutilizzato da altri lavori) nelle revisioni successive di Haskell poiché ha portato a un codice più pulito (rispetto a continuazioni / flussi):
The monadic approach rapidly dominated earlier models. The types are
more compact, and more informative.