these

An either-or-both data type.

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"). @ data These a b = This a | That b | These a b @ Since version 1, this package was split into parts: * <https://hackage.haskell.org/package/semialign semialign> For @Align@ and @Zip@ type-classes. * <https://hackage.haskell.org/package/semialign-indexed semialign-indexed> For @SemialignWithIndex@ class, providing @ialignWith@ and @izipWith@. * <https://hackage.haskell.org/package/these-lens these-lens> For lens combinators. * <http://hackage.haskell.org/package/monad-chronicle monad-chronicle> For transformers variant of @These@.