Compile-time type information is believed to be very valuable in efficient compilation of functional languages such as Standard ML. But little is known on how to support type-directed compilation in real compilers and how much performance gain one can get from various type-based optimizations. The goal of this research is to design and identify important type-directed compilation techniques that can significantly improve the performance of ML programs. These new compilation techniques are expected to lead to the following nice results: (1) data objects (including recursive data structures) in ML programs will be able to use unboxed data representations that are as efficient as those in C programs; (2) polymorphic functions and parametrized modules will be implemented efficiently through cross-module type specialization and inlining expansion; (3) type information propagated into the compiler back end will be used to assist program analysis such as closure analysis and instruction scheduling. The educational component of this CAREER award seeks two objectives: the construction of a new compiler lab kit (based on the above type-based ML compiler) and the incorporation of state-of-the-art compiler technology into the undergraduate and graduate curriculum.