https://jackieadshead.uk/2008/11/taking-the-abstraction-a-little-further/
Taking the abstraction a little further