¿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?