overtone/overtone — comment on commit 75ce84b4889e01d4ab38d50a45408db946af202b
File:  line 0
By neatonk:

What are you thoughts on the rest of the ::buffer hierarchy here?

It seems that ::file-buffer, ::buffer-stream, and ::buffer-cue have a whole lot in common.

* All three are associated with a file.
* A ::file-buffer is closed while a ::buffer-cue and ::buffer-stream are both open.
* A ::buffer-stream is open for writing while a ::buffer-cue is open for reading.
* ::buffer-cue and ::buffer-stream are both sized for streaming.

What do you think about merging the three types into something like this?

```clj
(with-meta
(merge info
{:allocated-on-server (atom true)
:open? (atom :read) ; #{:read :write! false}
:path path})
{:type ::file-buffer})
```