Iteration and coiteration schemes for higher-order and nested datatypesAbel, Andreas; Matthes, Ralph; Uustalu, TarmoTheoretical computer science2005 / 1/2, p. 3-66