Week 4: Types and Pattern Matching