Designing with types #01: Introduction