uncurry package:deriving-compat

Like uncurryType, except on a kind level.
Split a type signature by the arrows on its spine. For example, this:
forall a b. (a ~ b) => (a -> b) -> Char -> ()
would split to this:
(a ~ b, [a -> b, Char, ()])