Chapter 23Haskell’s Type System
by Paul Callaghan
Imagine an approach to programming where you write down some description of what your code should do, then before running your code, you run some automatic tool to see if the code matches the description. That’s test-driven development, you say!
Actually, this is what you’re doing when you use static types in most languages too. Types are a description of the code’s inputs and outputs, and the check ensures that inputs and outputs match up and are used consistently. Modern type systems—such as in Haskell—are very flexible and allow these descriptions to be quite detailed; plus, they aren’t too obtrusive in use and often very helpful.
One point I’ll investigate here is how advances in types ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access