[Haskell-beginners] dependent types