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)