An unpacked these data type.
The These
type and associated operations.
This module is intended to be a drop-in(*) replacement for Data.These. To shave off pointer chasing, it uses -XUnboxedSums to represent the These
type as two machine words that are contiguous in memory, without loss of expressiveness that These
provides.
This library provides pattern synonyms This, That, and Both(*), which allow users to pattern match on an Unpacked These in a familiar way.
Functions are also provided for converting an Unpacked These to the these library's These, and vice versa.
(*): pattern synonyms use the same namespace as type constructors, so pattern matching on an Unpacked These with the more familiar These
data constructor is not possible, instead, Both is provided.
This library is in alpha, and the internals are likely to change.