Hi Sean. I would like to propose a change mainly for starting being ClojureScript friendly.
It would be very useful to have all the protocols in one .cljc file and the implementations in different ones. This would open the doors for a ClojureScript port of some of the implementations down the road.
I don't know exactly how the split could be organized as I have just glanced the code but I am opening this issue to taste the waters about the idea.