De acordo com A History of Haskell: Being Lazy With Class (consulte a seção 7), três modelos diferentes foram considerados inicialmente: fluxos , continuações e "passagem pelo mundo" (não sei muito sobre o Clean, mas parece que esse é o caminho do Clean) ?).
O último parágrafo da seção 7.2 indica que o conceito de tipo de exclusividade não foi desenvolvido no momento:
Esse modelo de “passagem pelo mundo” nunca foi um candidato sério para Haskell, no entanto, porque não vimos uma maneira fácil de garantir o acesso “de thread único” ao estado mundial. (Os designers do Clean resolveram esse problema com o uso de "tipos de exclusividade")
O conceito de mônadas parece ter sido introduzido (reutilizado em outros trabalhos) em revisões posteriores de Haskell, uma vez que resultou em código mais limpo (comparado a continuações / fluxos):
A abordagem monádica rapidamente dominou os modelos anteriores. Os tipos são mais compactos e mais informativos.