ligd: Let's be special: Introduce extensibility, nobody else has it.

This simply plays on the idea of the Returning pattern I introduced last,
by simply putting the apply in a class and then subclassing it. I also
outlined a way to do this in Haskell.

I do wonder why this has not been mentioned so far in any papers. It's
hard to believe no one discovered that.