Typed Self-Optimization