these-0.7.3: An either-or-both data type & a generalized 'zip with padding' typeclass
This package provides a data type These a b
which can hold a value of either
type or values of each type. This is usually thought of as an "inclusive or"
type (contrasting Either a b
as "exclusive or") or as an "outer join" type
(contrasting (a, b)
as "inner join").
The major use case of this is provided by the Align
class, representing a
generalized notion of "zipping with padding" that combines structures without
truncating to the size of the smaller input.
Also included is ChronicleT
, a monad transformer based on the Monad instance
for These a
, along with the usual monad transformer bells and whistles.
Modules