(defn foo [] (t/let [c-in :- (ta/Chan t/Int) (chan) c-in2 :- (ta/Chan t/Int) (chan) c-in3 :- (ta/Chan t/Str) (chan) tt :- (ta/Chan (t/Val nil)) (timeout 1000) ] (ta/go-loop [] (let [[c v] (async/alts! [c-in c-in2 c-in3 tt])] (case c c-in (println v "is an integer") c-in2 (println v "is an integer") c-in3 (println v "is a string") tt (println "Hurry up."))) ) c-in))