¿Es posible hacer la mónada IO de Haskell en Clojure?

He echado un vistazo a laalgo.monads yfluokitten documentación. También he leído las entradas de blog de mónada porJim Duey, Konrad Hinsen yLeonardo Borges.

Lo más cerca que puedo encontrar esLa biblioteca de Konrad Hinsen Monadic IO streams - pero esto no parece 'implementar la interfaz de mónada' (por falta de una mejor redacción)

Este es un ejemplo usando ST en Haskell

oneST :: ST s Int -- note that this works correctly for any s
oneST = do var <- newSTRef 0
           modifySTRef var (+1)
           readSTRef var

one :: Int
one = runST oneST

Mi pregunta es:¿Es posible hacer elIO Monad de Haskell en Clojure? Podría dar un ejemplo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta