these-1.1.1.1: An either-or-both data type.

# these-1.1.1.1: 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:

- semialign For `Align` and `Zip` type-classes.
- semialign-indexed For `SemialignWithIndex` class, providing `ialignWith` and `izipWith`.
- these-lens For lens combinators.
- monad-chronicle For transformers variant of `These`.

Signatures

Modules

- Data
  Submodules
  - Functor
    Submodules
    - Data.Functor.These
  - Data.These
    Submodules
    - Data.These.Combinators