After my colleague explained me about zippers and how one could derive the datatype using differential rules, I had to read about it.

So I started reading http://en.wikibooks.org/wiki/Haskell/Zippers#Mechanical_Differentiation

This page contains the sentence:  "For a systematic construction, we need to calculate with types. The basics of structural calculations with types are outlined in a separate chapter Generic Programming and we will heavily rely on this material"

However, the generic programming link does not exist yet :-)  

So although I now have a rough idea about it, I don't understand the details yet, e.g. notation like

\mathit{Node}\,A = \mu X.\,\mathit{NodeF}_A\,X

doesn't make much sense to me yet, although I suspect I can read the mu as a lambda on types?

Thanks,
Peter