[Haskell-beginners] GADTs and method signature