`These` is a monad which expresses "inclusive-OR" relation:
These(A, B) = A + B + A * B.
These represents a simple idea: it can hold either value of type A, value of type B or both of them simultaneously.
Take a look at the following function in TypeScript using These monad from fp-ts package by @GiulioCanti:
![](https://pbs.twimg.com/media/D3EmF_sX4AACp6I.png)
so the monad could be reduced to a single value.
![](https://pbs.twimg.com/media/D3EmlnFXcAAk-D2.png)
![](https://pbs.twimg.com/media/D3Em6NmW0AAHydO.png)
![](https://pbs.twimg.com/media/D3Enc3JW0AAnQOy.png)