[Haskell-beginners] A type level programming question