Beginning Function definition, application. Pattern matching Recursion map, fold Functions as values Intermediate data declarations Parametric polymorphism Typeclasses (ad-hoc polymorphism) Advanced Dependent types (types as values) Monad transformers Macros