Extensible records and polymorphic variants.
Data.Diverse.Many
is an extensible record for any size encoded efficiently as (Seq Any). Data.Diverse.Which
is a polymorphic variant of possibilities encoded as (Int, Any). Provides getters, setters, projection, injection, folds, and catamorphisms; accessed by type, index or label. Refer to ManySpec.hs and WhichSpec.hs for example usages. Iso, Lens and Prisms are provided in data-diverse-lens
"Data.Diverse.Many" is an extensible record for any size encoded efficiently as (Seq Any).
"Data.Diverse.Which" polymorphic variant of possibilities encoded as (Int, Any).
Provides getters, setters, projection, injection, folds, and catamorphisms; accessed by type or index or label.
Refer to ManySpec.hs and WhichSpec.hs for example usages.
Iso, Lens and Prisms are provided in data-diverse-lens.