@InProceedings{pni:tfp07,
author = {Pablo Nogueira},
title = {When is an Abstract Data Type a Functor?},
booktitle = {Trends in Functional Programming},
isbn = {978-1-84150-188-8},
pages = {217--231},
publisher = {Intellect},
year = 2007,
editor = {Henrik Nilsson},
volume = 7,
chapter = 13,
abstract = {A parametric algebraic data type is a functor when we can
apply a function to its data components while satisfying
certain equations. We investigate whether parametric
abstract data types can be functors. We provide a general
definition for their map operation that needs only satisfy
one equation. The definability of this map depends on
properties of interfaces and is a sufficient condition for
functoriality. Instances of the definition for particular
abstract types can then be constructed using their axiomatic
semantics. The definition and the equation can be adapted to
determine, necessarily and sufficiently, whether an ADT is a
functor for a given implementation}
}