Module documentation for 0.8.1.0
"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.
Iso, Lens and Prisms are provided in data-diverse-lens
184.108.40.206 - Removed
Which since it is uninhabitable. -
xxxTagfunctions only rely on
220.127.116.11 - Renamed
grabto avoid conflicting with Haxl. - Removed unused type functions from removed splitting functions (Before,To,After,From,Length) - Added
impossible'and ability to diversify and reinterpret
Which '[Void]- Added
18.104.22.168 - Simplified type synonyms for Which. Added Reinterpreted constraint synonym.
22.214.171.124 - Breaking change: the prime (xxx') version of functions are now consistently the simpler or non-polymorphic version. - This is more consistent with
Control.Lensas well. - This means the following are swapped: -
amendN'- Breaking change: Removed proxy argument from
trialL/Tag/Nrelying soley on
TypeApplicationsand now requiring
Proxyis also removed from the Read/Show serialized format. - Rearranged type variables in
trialL/Tag/Ntype parameters, so the type variable ordering is consistently label, orig to change, smaller to larger, ie.
126.96.36.199 - Removed splitting operations added in 188.8.131.52 - added
xxxTagversion of label operations that also automatically untags the field.
Which- Removed cabal upper bounds
184.108.40.206 - Added
removefor GHC < 8.2 - Removed type functions
removeis not available in GHC 8.2 onwards.
220.127.116.11 - Rerranged type variable for xxxL and xxxN functions so that the
xinferrred from label
proxy. - This affects
pick[L|N]- Depends on at least containers-0.5.8.2 for
Data.Sequence.insertAt- Added splitting operations:
remove[Before|After][|L|N]- Renamed type function
Removeto be consistent with new
18.104.22.168 - Added
CaseFunc @Typeable) https://github.com/louispan/data-diverse/issues/6 - Replaced
22.214.171.124 - Added
CaseTypeable'as an example of polymorphic
Casethat doesn't change the type.
126.96.36.199 - The exposed api shouldn't break, but there are a lot of internal changes. - Added
AFunctorwhich can map over the types in the 'Many' https://github.com/louispan/data-diverse/issues/5. - Added friendlier type synomyns
collectN- Expose type of 'Collector' and 'CollectorN' - Replace type parameter
CaseResulttype family. - Replaced
CasesResulttype function with
CasesResultstype functions. - All
CaseXxxtype variables now end with r xs. - All
CaseXxxNtype variables now end with r n xs.
0.11.0.0 - Added
Data.Void.absurdhttps://github.com/louispan/data-diverse/issues/4 - Removed
Which 'is uninhabited like
Data.Void.Void, making 'impossible' safe to use. - Removed
Which 'to be partial just like Data.Void.Void. - Added
instance Reduce (Which ') (Switcher c ' r), which follows from
0.10.0.0 - Renamed
Switcher. Switch is now a type synonym for
switchconstraints - Added CasesResult type family to help infer the result of
cases- Added Semigroup and Monoid instances for all Many xs. - Added Maybe versions of trial, and reinterpret - Renamed
zilch. - Allowed
zilch- Removed zipped type variable from
Amendconstraints. - Removed r type variable from
Reducetypeclass. - Rearranged type variables in
Diversifytype parameters, so the type variable ordering is consistently smaller to larger, ie.
diversify'for allowing rearranging the types only.
0.9.0.1 - Fixed GHC 8.2.1 test failure due to changed TypeRep show instance.
0.9.0.0 - Breaking changes: Renamed Many.sliceL/R to Many.viewf/b - Renamed TypeLevel.Internal.MissingImpl to IsUniqueImpl. - Added postifx' with SnocUnique and append' with AppendUnique. - Added Semigroup & Monoid instances for
Which '- Fixed GHC 8.2 compile error with importing GHC.Prim (Any)
0.8.1.0 - Added NFData instance for Which. - Forgot to expose Many.sliceL and Many.sliceR.
0.8.0.0 - Changed internal representation to (Data.Seq Any) for a further 2x append speedup. - Added NFData instance for Many.
0.7.0.0 - Removed NOINLINE pragmas. - Changed internal representation to (Int, Data.IntMap Any) for a 2.5x append speedup.
0.6.0.0 - Moved lens to data-diverse-lens
0.5.0.0 - Renamed type level functions module from Type to TypeLevel
0.4.0.0 - Removed Emit typeclass, breaking renames. Added label accessors.
0.1.0.0 - Initial version represented as (Int, Data.Map Int Any)