Modularity
4 Types guarantee module consistency
4 Can express some inter-module optimizations
8 Not as appropriate for some automatic
improvements (e.g. in-lining)