[Haskell] "exists" keyword and "existential" types