Why sum and product types?
charlieharvey.org.uk