# Acknowledgments

This manual builds on, and incorporates, the work of many people. We've borrowed many ideas from the literature, as documented in the references. But many other people have helped us design, implement, and refine the specific interfaces published in this manual:

Lyle Ramshaw orchestrated a redesign of the `Fmt` and `Lex` interfaces and the addition of the `ToDecimal` and `FromDecimal` procedures to the `Float` generic interface. David Goldberg and Jorge Stolfi consulted. Luca Cardelli designed the first version of `Lex` (which he called `Sift`).

`Atom`, `List`, `Sx`, and `Table` are similar to Modula-2+ versions designed by John Ellis. Jim Meehan collaborated on the design of `Sx`. Eric Muller and Jorge Stolfi explored the use of object types and generic interfaces for abstractions such as tables.

`Wr` and `Rd` were designed by Mark R. Brown and Greg Nelson and closely follow the design of the Modula-2+ streams package.

`Pathname` borrows from an earlier version written by Eric Muller.

Jim Horning and John Guttag wrote formal Larch specifications of `File.T` and its subtypes, and in the process asked questions leading to substantial improvements to the specifications in this manual.

Mick Jordan helped refine the operating-system interfaces and wrote the first implementations of them.

`WeakRef` was greatly improved through long and spirited discussions involving Luca Cardelli, Dave Detlefs, John Ellis, John DeTreville, Mick Jordan, Bill Kalsow, Mark Manasse, Ted Wobber, and Garret Swart. John DeTreville provided the implementation.

John DeTreville collaborated on the design of `RTCollector` and the other runtime interfaces.

Mary-Claire van Leunen encouraged us to begin.

Finally, this manual was greatly improved by the group of people who read earlier drafts and participated in a running discussion on an electronic bulletin board: Ed Balkovich, Andrew Birrell, Hans Boehm, Marc H. Brown, Mike Burrows, Luca Cardelli, Michel Dagenais, Alan Demers, Dave Detlefs, Mike Dixon, John DeTreville, Steve Freeman, Michel Gangnet, David Goldberg, Judy Hall, Dave Hanson, Carl Hauser, Allan Heydon, Chuck Jerian, Butler Lampson, Mark Manasse, Eric Muller, Hal Murray, David Nichols, Sharon Perl, Dave Redell, Eric Roberts, Robert Sedgewick, Mike Spreitzer, Garret Swart, Samuel Weber, and Ted Wobber.