This research project investigates the tight integration of program generation facilities into typed languages. Present program generation technology can be classified as either integrated with the language environment, as are macros in Lisp, or external to the language, as are yacc and lex for C. Within language-integrated generators, the taxonomy can be further refined into tightly-integrated generators, exemplified by reflective systems, and loosely-integrated generators, such as macro preprocessors. Tight integration of generators into typed languages gives rise to a number of problems to which solutions must be found. However, the benefits of increased expressiveness, efficiency, productivity, reusability, reliability, and quality makes research into solving these problems worthwhile. If the project is successful, it will provide a clearer semantics to a reflective ML-like language tailored for building generator systems, illustrate how such a reflective language can be restricted to maintain the invariants of strong typing, design a meta-programming system to prevent variable capture or design hiding, and build a programming environment where generated code can be seamlessly integrated with code produced in more traditional ways.