A new functional database language called PFL is described. PFL is a lazy functional language with a polymorphic type inference system which enforces strong static type-checking. All functions persist in a repository, and are specified by the insertion and deletion of equations. New data types can be added at any time, and the order in which types and equations are inserted is immaterial. A class of functions called selectors are used for the storage of bulk data. Selectors allow flexible, efficient access to stored data and encourage a natural and succinct programming style.

In Section 1 of the paper we describe the PFL type system, and in Section 2 the definition of functions. In Section 3 we describe selector functions. Section 4 describes the evaluation of queries, Section 5 the deletion of equations and type information, and Section 6 the retrieval of metadata. In Section 7 we illustrate the features of PFL, and compare PFL with other languages. An extended example, based upon the manufacturing company parts database example is presented in Section 8.