This is a book about isomorphisms 0/ types, arecent difficult research
topic in type theory that turned out to be able to have valuable
practical applications both for programming language design and far more
human- centered information retrieval in software libraries. By means of
a deep study of the syntax of the now widely known typed A-ca1culus, it
is possible to identify some simple equations between types that on one
hand allow to improve the design of the ML language, and on the other
hand provide the basis for building radically new information retrieval
systems for functional software libraries. We present in this book both
the theoretical aspects of these researches and a fully functional
implementation of some of their applications in such a way to provide
interesting material both for the theoretician looking for proofs and
for the practitioner interested in implementation details. In order to
make it possible for these different types of readers to use this book
effectively, some special signs are used to designate material that is
particularly technical or applied or that represents a digression. When
the symbol appears at the beginning of a section or a subsection, it
warns that the material contained in such section is particularly
technical with respect to the general level of the chapter or section
where it is located. This material is generally reserved to
theoreticians and does not need to be read by the casual reader.