Changelog for parameterized-utils-2.1.0
Changelog for the parameterized-utils
package
2.1.0 -- 2020 May 08
- Added
plusAssoc
to theNatRepr
module to produce+
associativity evidence. - Changed the
HashTable
module 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
dropPrefix
operation toContext
which splits anAssignment
. - Add
intersectWithKeyMaybe
andmergeWithKey
toMap
. - Add
mapAt
,mapAtM
, andreplace
toVector
. - Add dependency on
base-orphans
to handle theTestEquality
instance forCompose
; needed for GHC 8.10. - Bump upper limit of
lens
dependency 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
findWithDefault
to 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.All
module for universal quantification/parametricity over a type variable. - Additions to
Data.Parameterized.Context
:- Added
IndexView
type andviewIndex
functions. - Added
addDiff
function to explicitly describe the (flipped) binary operator for theDiff
instance of theCategory
class fromControl.Category
. - Added
traverseWithIndex_
- Added
- Added
Data.Parameterized.DataKind
providing thePairRepr
type with associatedfst
andsnd
functions. - Added
TypeAp
toData.Parameterized.Classes
- Added
runSTNonceGenerator
toData.Parameterized.Nonce
for a global ST generator. - Added a
Hashable
instance for listIndex l x
types. - Changes in GADT TH code generator:
- Added
structuralHashWithSalt
to - Fixed off by one bug in output
- Fixed generation and constructor generation to use constructor type arguments, not type parameters.
- Added
- The
Some
type is now an instance ofFunctorF
,FoldableF
, andTraversableF
. - Adjusted
structuralShowsPrec
precedence to match GHC derivedShow
instances. - The
Data.Parameterized.Nonce.Unsafe
module 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
OrdF
instance forCompose
- Added function:
- Data.Parameterized.ClassesC
- Marked as
Safe
haskell via pragma - Added
OrdC
instance forSome
- Marked as
- Data.Parameterized.Compose
- Update
testEqualityComposeBare
to be more kind-polymorphic. - Marked as
Safe
haskell via pragma
- Update
- Data.Parameterized.Context
- Added
diffIsAppend
function to extract the contextual difference between twoContext
s (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
Int
toNatural
- Add function
intValue
to recover anInt
from aNatRepr
. - Add constructor function
mkNatRepr
to construct aNatRepr
from aNatural
. - Removed awkward backdoor for directly creating
NatRepr
values; the single needed internal usage is now handled internally.
- Change runtime representation from
- Data.Parameterized.Peano
- Newly added module.
- Defines a type
Peano
andPeanoRepr
for representing a type-level natural at runtime. - The runtime representation of
PeanoRepr
isWord64
- Has both safe and unsafe implementations.
- Data.Parameterized.WithRepr
- Newly added module.
- This module declares a class
IsRepr
with a single methodwithRepr
that 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
MapF
functionsfilter
andfilterWithKey
- Added
MapF
function:mapWithKey
- Fixed
- Data.Parameterized.NatRepr
- Un-deprecate
withKnownNat
- Un-deprecate
- Data.Parameterized.Context
- Updated some haddock documentation (esp.
CtxEmbedding
data structure).
- Updated some haddock documentation (esp.
- Data.Parameterized.Nonce
- Fixed
newIONonceGenerator
haddock documentation (IO monad, not ST monad). - Added
countNoncesGenerated
for profiling Nonce usage.
- Fixed
- Data.Parameterized.TraversableF
- Added
FunctorF
,FoldableF
, andTraversableF
instances forCompose
from Data.Functor.Compose
- Added
- Data.Parameterized.ClassesC
- Newly added module.
- Declares
TestEqualityC
andOrdC
classes for working with types that have kind(k -> *) -> *
for anyk
.
- Data.Parameterized.Compose
- Newly added module.
- Orphan instance and
testEqualityComposeBare
function 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
MapF
functions:filter
filterWithKey
- Added
1.0.6 -- 2018 Nov 19
- Add support for GHC 8.6.
- Data.Parameterized.Map
- Added functions:
foldlWithKey
andfoldlWithKey'
(strict)foldrWithKey
andfoldrWithKey'
(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
DecidableEq
class 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
DecidableEq
instance for NatRepr. - Add functions:
decideLeq
isZeroOrGT1
lessThanIrreflexive
lessThanAsymmetric
natRecStrong
-- 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
lemmaMul
from Vector to NatRepr. - Add stricter role annotations:
NatRepr
is nominal.Vector
is nominal in the first parameter and representational in the second.
- Data.Parameterized.NatRepr
- Provide a backdoor for directly creating
NatRepr
values. 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.