I gave my post as a talk at the recent ScalaSyd, and you can get the slides here.

As an aside, I made the somewhat hand-wavy allegation that the normal Hom-functor that we use is in some way the “right” one. I sat down to actually try to prove this, and I haven’t been able to come up with anything satisfactory. On the face of it, there’s no reason why there shouldn’t be other functors that behave the same as the Hom-functor on objects, but do something different to the arrows. So unless there’s a cunning proof that there can’t be such a functor in generality, or there’s an independent characterisation of the Hom-functor that I haven’t thought of, I’m a bit stumped.

Ideas welcome!