Facilities for async programming and communication in Clojure