Polytypic Functions Over Nested Datatypes - Hinze, R (Discrete Mathematics and Theoretical Computer Science, 1999)