Type-Compliant Adaptation Cascades: Adapting Programmatic LM Workflows to Data