Changelog for parameterized-utils-2.1.0
Changelog for the parameterized-utils package
2.1.0 -- 2020 May 08
- Added
plusAssocto theNatReprmodule to produce+associativity evidence. - Changed the
HashTablemodule to use the Basic instead of the Cuckoo implementation strategy. - Added explicit kind parameters to various definitions to support
GHC 8.10's adoption of proposal 103.
This is a modification to the type signatures which may impact
backward-compatibility and require updates, especially for any
uses of
TypeApplications. - No longer verifying support for GHC 8.2 or earlier.
- Updated the minimum cabal version to 1.10 and specify the default-language as Haskell2010.
2.0.2 -- 2020 Feb 10
- Add the
dropPrefixoperation toContextwhich splits anAssignment. - Add
intersectWithKeyMaybeandmergeWithKeytoMap. - Add
mapAt,mapAtM, andreplacetoVector. - Add dependency on
base-orphansto handle theTestEqualityinstance forCompose; needed for GHC 8.10. - Bump upper limit of
lensdependency to allow 4.19.
2.0.1 -- 2019 Nov 06
- Documentation updates
- Dependency constraint updates: constraints, lens, th-abstraction, hashable, hashtables, and vector.
- Now supports building under GHC 8.8.1.
- Added monadic folds and more traversals:
- lazy folds:
foldlMF,foldrMF,foldlMFC,foldrMFC - strict folds:
foldlMF',foldrMF',foldlMFC',foldrMFC' forF,forF_forFC,forFC_lengthF
- lazy folds:
- Added monadic folds, ascending or descending list conversions to
Parameterized.Map:- Added monadic folds:
foldlMWithKey,foldrMWithKey - Added ascending or descending list conversions:
toAscList(equivalent to existingtoList) andtoDescList. - Added
findWithDefaultto lookup a key or return a default value. - Added
traverseMaybeWithKey. - Fixes traverse to do an in-order rather than a pre-order traversal.
- Added monadic folds:
- Added the
Data.Parameterized.Allmodule for universal quantification/parametricity over a type variable. - Additions to
Data.Parameterized.Context:- Added
IndexViewtype andviewIndexfunctions. - Added
addDifffunction to explicitly describe the (flipped) binary operator for theDiffinstance of theCategoryclass fromControl.Category. - Added
traverseWithIndex_
- Added
- Added
Data.Parameterized.DataKindproviding thePairReprtype with associatedfstandsndfunctions. - Added
TypeAptoData.Parameterized.Classes - Added
runSTNonceGeneratortoData.Parameterized.Noncefor a global ST generator. - Added a
Hashableinstance for listIndex l xtypes. - Changes in GADT TH code generator:
- Added
structuralHashWithSaltto - Fixed off by one bug in output
- Fixed generation and constructor generation to use constructor type arguments, not type parameters.
- Added
- The
Sometype is now an instance ofFunctorF,FoldableF, andTraversableF. - Adjusted
structuralShowsPrecprecedence to match GHC derivedShowinstances. - The
Data.Parameterized.Nonce.Unsafemodule is now deprecated: clients should switch toData.Parameterized.Nonce.
2.0 -- 2019 Apr 03
- Drop support for GHC versions prior to GHC 8.2
- Various Haddock and module updates.
- Data.Parameterized.Classes
- Added function:
ordFCompose - Added
OrdFinstance forCompose
- Added function:
- Data.Parameterized.ClassesC
- Marked as
Safehaskell via pragma - Added
OrdCinstance forSome
- Marked as
- Data.Parameterized.Compose
- Update
testEqualityComposeBareto be more kind-polymorphic. - Marked as
Safehaskell via pragma
- Update
- Data.Parameterized.Context
- Added
diffIsAppendfunction to extract the contextual difference between twoContexts (as aDiff) as anIsAppend(new) data value if the left is a sub-context of the right.
- Added
- Data.Parameterized.NatRepr
- Change runtime representation from
InttoNatural - Add function
intValueto recover anIntfrom aNatRepr. - Add constructor function
mkNatReprto construct aNatReprfrom aNatural. - Removed awkward backdoor for directly creating
NatReprvalues; the single needed internal usage is now handled internally.
- Change runtime representation from
- Data.Parameterized.Peano
- Newly added module.
- Defines a type
PeanoandPeanoReprfor representing a type-level natural at runtime. - The runtime representation of
PeanoReprisWord64 - Has both safe and unsafe implementations.
- Data.Parameterized.WithRepr
- Newly added module.
- This module declares a class
IsReprwith a single methodwithReprthat can be used to derive a 'KnownRepr' constraint from an explicit 'Repr' argument. Clients of this method need only create an empty instance. The default implementation suffices.
1.0.8 -- 2019 Feb 01
- Data.Parameterized.Map
- Fixed
MapFfunctionsfilterandfilterWithKey - Added
MapFfunction:mapWithKey
- Fixed
- Data.Parameterized.NatRepr
- Un-deprecate
withKnownNat
- Un-deprecate
- Data.Parameterized.Context
- Updated some haddock documentation (esp.
CtxEmbeddingdata structure).
- Updated some haddock documentation (esp.
- Data.Parameterized.Nonce
- Fixed
newIONonceGeneratorhaddock documentation (IO monad, not ST monad). - Added
countNoncesGeneratedfor profiling Nonce usage.
- Fixed
- Data.Parameterized.TraversableF
- Added
FunctorF,FoldableF, andTraversableFinstances forComposefrom Data.Functor.Compose
- Added
- Data.Parameterized.ClassesC
- Newly added module.
- Declares
TestEqualityCandOrdCclasses for working with types that have kind(k -> *) -> *for anyk.
- Data.Parameterized.Compose
- Newly added module.
- Orphan instance and
testEqualityComposeBarefunction for working with Data.Functor.Compose.
- Data.Parameterized.TestEquality
- Newly added module.
- Utilities for working with Data.Type.TestEquality.
1.0.7 -- 2018 Nov 17
- Data.Parameterized.Map
- Added
MapFfunctions:filterfilterWithKey
- Added
1.0.6 -- 2018 Nov 19
- Add support for GHC 8.6.
- Data.Parameterized.Map
- Added functions:
foldlWithKeyandfoldlWithKey'(strict)foldrWithKeyandfoldrWithKey'(strict)mapMaybeWithKey
- Added functions:
1.0.5 -- 2018 Sep 04
- Data.Parameterized.Context
- Add function:
take,appendEmbedding,appendDiff - Diff is type role nominal in both parameters.
- Add function:
1.0.4 -- 2018 Aug 29
- Data.Parameterized.Context
- Add
traverseAndCollect. Allows traversal of an Assignment in order from left to right, collecting the results of a visitor function monoidically.
- Add
- Data.Parameterized.DecidableEq
- Newly added module. The
DecidableEqclass represents decideable equality on a type family as a superclass ofTestEquality, where the latter cannot provide evidence of non-equality.
- Newly added module. The
- Data.Parameterized.NatRepr
- Add
DecidableEqinstance for NatRepr. - Add functions:
decideLeqisZeroOrGT1lessThanIrreflexivelessThanAsymmetricnatRecStrong-- recursor with strong inductionnatRecBounded-- bounded recursornatFromZero
- Add
- Data.Parameterized.Vector
- Add construction functions:
singleton,cons,snoc,generate, andgenerateM - Add functions:
splitWithA(applicativesplitWith).
- Add construction functions:
1.0.3 -- 2018 Aug 24
- Move
lemmaMulfrom Vector to NatRepr. - Add stricter role annotations:
NatRepris nominal.Vectoris nominal in the first parameter and representational in the second.
- Data.Parameterized.NatRepr
- Provide a backdoor for directly creating
NatReprvalues. Use carefully.
- Provide a backdoor for directly creating
- Data.Parameterized.Vector
- Add Show and Eq instances
- Add functions:
joinWithM,reverse
1.0.2 -- 2018 Aug 23
- Allow function passed to
traverseF_,traverseFC_, andforMFC_to return a value instead of null (()). - Data.Parameterized.Vector
- Newly added module. A fixed-size vector of typed elements.
- Data.Parameterized.Utils.Endian
- Newly added module. Used in Vector.
1.0.1 -- 2018 Aug 13
Baseline for changelog tracking.