Nested Datatypes

A nested datatype, also known as a non-regular datatype, is a parametrised datatype whose declaration involves different instances of the accompanying type parameters. Nested datatypes have been mostly ignored in functional programming until recently, but they are turning out to be both theoretically important and useful in practice. The aim of this paper is to suggest a functorial semantics for such datatypes, with an associated calculational theory that mirrors and extends the standard theory for regular datatypes. Though elegant and generic, the proposed approach appears more limited than one would like, and some of the limitations are discussed. Hark, by the bird’s song ye may learn the nest. Tennyson The Marriage of Geraint

[1]  Richard S. Bird,et al.  Algebra of programming , 1997, Prentice Hall International series in computer science.

[2]  Graham Hutton,et al.  Bananas in space: extending fold and unfold to exponential types , 1995, FPCA '95.

[3]  Chris Okasaki,et al.  Catenable double-ended queues , 1997, ICFP '97.

[4]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[5]  李幼升,et al.  Ph , 1989 .

[6]  J. Lambek A fixpoint theorem for complete categories , 1968 .

[7]  Programming Languages: Implementations, Logics and Programs , 1995, Lecture Notes in Computer Science.

[8]  Grant Malcolm,et al.  Algebraic Data Types and Program Transformation , 1990 .

[9]  P. Freyd Algebraically complete categories , 1991 .

[10]  Tim Sheard,et al.  Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space) , 1996, POPL '96.

[11]  Richard S. Bird,et al.  Generic functional programming with types and relations , 1996, Journal of Functional Programming.

[12]  F. Lockwood Morris,et al.  A generalization of the trie data structure , 1995, Mathematical Structures in Computer Science.

[13]  Tim Sheard,et al.  Revisiting catamorphisms over datatypes with embedded functions , 1995 .

[14]  Michael A. Arbib,et al.  Algebraic Approaches to Program Semantics , 1986, Texts and Monographs in Computer Science.

[15]  Alan Mycroft,et al.  Polymorphic Type Schemes and Recursive Definitions , 1984, Symposium on Programming.

[16]  G. Malcolm,et al.  Data Structures and Program Transformation , 1990, Sci. Comput. Program..

[17]  S. Lane Categories for the Working Mathematician , 1971 .

[18]  Yike Guo,et al.  Programming Languages: Implementations, Logics, and Programs , 1997, Lecture Notes in Computer Science.

[19]  Lambert G. L. T. Meertens Calculate Polytypically! , 1996, PLILP.

[20]  Johan Jeuring Polytypic pattern matching , 1995, FPCA '95.