Ist es möglich, die IO-Monade von Haskell in Clojure zu machen?

Ich habe mir das angeschautalgo.monads undFluokitten Dokumentation. Ich habe auch Monadenblogeinträge von gelesenJim Duey, Konrad Hinsen undLeonardo Borges.

Der nächste, den ich finden kann, istKonrad Hinsens Bibliothek Monadic IO-Streams - aber dies scheint nicht "die Monad-Schnittstelle zu implementieren" (aus Mangel an einer besseren Phrasierung)

Dies ist ein Beispiel für die Verwendung von ST in 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

Meine Frage ist:Ist es möglich, das zu tun?IO Monad aus Haskell&nbsp;in Clojure?&nbsp;Könnten Sie ein Beispiel geben?