[Haskell] Lemmas about type functions