[Haskell] type family vs. polymorphism