data-diverse: Extensible records and polymorphic variants.

[ bsd3, data, library, records ] [ Propose Tags ]
This version is deprecated.

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


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.4.0.0, 0.5.0.0, 0.6.0.0, 0.7.0.0, 0.8.0.0, 0.8.1.0, 0.9.0.0, 0.9.0.1, 0.10.0.0, 0.11.0.0, 1.0.0.0, 1.0.0.1, 1.1.0.0, 1.2.0.0, 1.2.0.1, 1.2.0.2, 1.2.0.3, 1.3.0.0, 2.0.0.0, 2.0.1.0, 3.0.0.0, 3.1.0.0, 4.0.0.0, 4.1.0.0, 4.2.0.0, 4.3.0.0, 4.4.0.0, 4.5.0.0, 4.6.0.0, 4.7.0.0, 4.7.1.0 (info)
Dependencies base (>=4.7 && <5), containers (>=0.5 && <0.6), deepseq (>=1.4 && <2), ghc-prim (>=0.5 && <1), tagged (>=0.8.5 && <1) [details]
License BSD-3-Clause
Copyright 2017 Louis Pan
Author Louis Pan
Maintainer louis@pan.me
Category Data, Records
Home page https://github.com/louispan/data-diverse#readme
Source repo head: git clone https://github.com/louispan/data-diverse
Uploaded by louispan at 2017-07-08T19:45:10Z
Distributions LTSHaskell:4.7.1.0, NixOS:4.7.1.0, Stackage:4.7.1.0
Reverse Dependencies 6 direct, 9 indirect [details]
Downloads 19333 total (124 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-07-08 [all 1 reports]

Readme for data-diverse-0.8.0.0

[back to package description]

Hackage Build Status

"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

Changelog

  • 0.1.0.0 Initial version represented as (Int, Data.Map Int Any)

  • 0.4.0.0 Removed Emit typeclass, breaking renames. Added label accessors.

  • 0.5.0.0 Renamed type level functions module from Type to TypeLevel

  • 0.6.0.0 Moved lens to data-diverse-lens

  • 0.7.0.0 Removed NOINLINE pragmas. Changed internal representation to (Int, Data.IntMap Any) for a 2.5x append speedup.

  • 0.8.0.0 Changed internal representation to (Data.Seq Any) for a further 2x append speedup.