[Haskell-cafe] Prevent a type parameter from sharing some of its parameters with another parameter