TIL: a type-directed optimizing compiler for ML