What is the clean way to include an ISR in a library?

I would suggest having a quick look at either the pinchangeint library or the servo library both of these are well used class based libraries that include ISRs.

The basic technique is to define a static member function, any class member variables you wish to access inside the ISR should also be defined static. You can then call the static member from inside you ISR handler.

I have an example that is about as clean and simple as it gets here -

Duane B

rcarduino.blogspot.com