[1] https://youtube.com/watch?v=wNa3MMbhwS4
[2] https://corecursive.com/015-dependant-types-in-haskell-with-...