In Clojure core.async, are channels and ports the same thing? If not what's the difference? In watching the video Timothy Baldridge - Core.Async, he creates a channel
(def c (chan))
Then later
(<!! c)
c
is channel yet the docs for <!!
state (emphasis added)
Usage: (<!! port) takes a val from port. Will return nil if closed. Will block if nothing is available.
It's not clear looking at the core.async docs.