tried a more types-first introduction to the language section