The `Cozippable` interface describes how you can combine and split elements of a parameterised type, those elements may contain not equal amount of information.
The easiest example is `List`. When you `zip` them using standard `Zippable` interface, only their prefixes of commit length are taken into account,
or else it is impossible to fulfill the interface.
Sometimes we may want to deal with such lack of information explicitly.
That's why zipping function of the `Cozippable` interface takes `These` data type, which is an inclusive "or", i.e. either one of elements, or both of them.
Parameters: z
Methods:
cozipWith : (These a b -> c) -> z a -> z b -> z c cozip : z a -> z b -> z (These a b)- Fixity Declaration: infixr operator, level 6
uncozipWith : (a -> These b c) -> z a -> These (z b) (z c) uncozip : z (These a b) -> These (z a) (z b)
Implementations:
Semigroup a => Cozippable (Pair a) Cozippable Maybe Cozippable (Either a) Semigroup a => Cozippable (These a) Cozippable List Cozippable SnocList Cozippable List1 Cozippable LazyList Ord k => Cozippable (SortedMap k)