OMPW provides an abstraction layer for writing Lisp libraries that can be used in "pure" Common Lisp, but also in the OM or PWGL environments.