Claus Reinke
Functions, Frames, and Interactions (advocating first class modules) PDF
Extended abstract, Proceedings of the Kolloquium 'Grundlagen der Programmierung', near Passau, Germany 1995

Abstract: Combining modules as first class data structures with explicit input/output-operations for arbitrary expressions in a purely functional programming language brings the flexibility of integrated programming environments under control of the functional language. Compared with conventional module systems, the proposed solution provides enhanced functionality in a simpler framework, using the functional language as an unrestricted module language and the extended input/output-facilities to make modules persistent.

Functions, Frames, and Interactions PDF
Proceedings of the Workshop on the Implementation of Functional Languages, Bastad, Sweden 1995

Abstract: This paper describes some proposals for improving the reduction language KiR with respect to data abstraction, modularization and input/output. Rather than adding specialized language elements for each purpose, an attempt is made to provide the desired functionality by way of only two extensions. These are frames (record-like data structures) and interactions (constructs describing communications with the program's runtime environment). The main topic is the unified treatment of language elements for programming-in-the-large within the framework of an untyped, purely functional language. Both modules and data abstraction are modeled as first class data structures.


These two papers were written in an early phase of the project and my view of things has changed slightly later. They do already contain the fundamental ideas of the language design, and the extended abstract may still serve as a brief introduction. However, I'd suggest to refer to my PhD thesis or to a more recent draft.