LILEANNA, a language for formally specifying and generating Ada packages, extends Ada by introducing two entities, theories and views, and enhancing a third, package specifications. A LILEANNA package, with semantics specified either formally or informally, represents a template for actual Ada package specifications. It is used as the common parent for families of implementations and for version control. A theory is a higher-level abstraction, a concept (or a context), that describes a module's syntactical and semantic interface. A view is a mapping between types, operations, and exceptions. The author describes key elements of the language and presents examples illustrating its applicability in support of a megaprogramming software development paradigm.ETX