11---
2- title : " \" Five Point Haskell\" Part 2: Unconditional Election"
2+ title : " \" Five Point Haskell\" Part 2: Unconditional Election (Parametric Polymorphism) "
33categories : Haskell
4- tags : functional programming, type driven development
4+ tags : functional programming, parametric polymorphism
55create-time : 2026/01/01 21:51:17
66identifier : five-point-haskell-2
77slug : five-point-haskell-part-2-unconditional-election
@@ -23,8 +23,9 @@ errors through our types.
2323
2424[ Total Depravity ] : https://blog.jle.im/entry/five-point-haskell-part-1-total-depravity.html
2525
26- However, picking good structures, making invalid states unrepreentable, etc.
27- can only go so far.
26+ However, picking good structures, making invalid states unrepresentable, etc.
27+ can only go so far. They are, in the end, tools of human designs and human
28+ flaws.
2829
2930Types aren't just about preventing bad behaviors. They're about designing good
3031code. And there is one principle that helps guide this design by leveraging the
@@ -42,7 +43,8 @@ Election**!
4243> polymorphim, but rather in the predestination of universal quantification.
4344>
4445> Therefore, surrender to your control to parametric polymorphism in all
45- > things. In simple terms: add a type parameter.
46+ > things. Embrace one of Haskell's greatest unexpected strengths: the type
47+ > parameter.
4648
4749<!-- > Unconditional Election: The _structure_ of your types fully determine the -->
4850<!-- > values and states it will ever take. Nothing at runtime can ever circumvent -->
0 commit comments