This is a great explanation of algebraic datatypes! The notion of one-hole context, its connection to differentiation, and its application to zippers is really interesting stuff. Another (much more detailed) discussion of it can be found here: http://en.wikibooks.org/wiki/Haskell/Zippers
"A true hero, Theseus chose Haskell as the language..." LOL!