Changelog ========= Version 0.4.0.1 --------------- *November 29, 2023* * Fix for GHC 8.2+ * Fix type of `(%*)` * `minusSNat` fixed * Qualified `cmpNat` Version 0.4.0.0 --------------- *June 20, 2019* * Complete overhaul of *GHC.TypeLits.Witnesses* to more or less match the interface of singletons. This changes the role of the module to be a "lightweight" version of the singletons library as it pertains to `Nat` and `Symbol`. * Removal of the *GHC.TypeLits.List* module. We could perform the same overhaul as *GHC.TypeLits.Witnesses*, but it is complex enough that it would be better to just use *singletons* instead at that point. * Remove all external dependencies, except for *base* and *dependent-sum*. * Break compatibility with GHC < 8.2 Version 0.3.0.3 --------------- *October 1, 2018* * Fix build for GHC 8.6 and `TypeIsStar` changes. * Break compatibility with GHC < 8.0 Version 0.3.0.2 --------------- *March 30, 2018* * Functions taking multiple `p m` in *GHC.TypeLits.Compare* now are able to take different "proxy" types (`p` and `q`). Version 0.3.0.1 --------------- * Documentation fixes because deprecation warnings were not showing up on haddocks for *GHC.TypeLits.List*. Version 0.3.0.0 --------------- * Added extra witnesses inside the constructors of `(:<=?)`. * Allowed functions to polymorphically expect `p n` instead of `Proxy n` whenever possible. * Soft deprecation of *GHC.TypeLits.Witnesses*, in case people want to use the functionality of *singletons* without the full library. * Formal deprecation of *GHC.TypeLits.List*, with migration information, because it's just so much more unweidly than using *singletons*. Version 0.2.3.0 --------------- * Added the `GHC.TypeLits.Compare` module for refining bounds and proving inequalities on `KnownNat`s and associated utility functions. Version 0.2.2.0 --------------- * Removed redundant `KnownNats` and `KnownSymbols` constraints for `sameNats` and `sameSymbols`. Version 0.2.1.0 --------------- * Added "eliminators", a staple of dependently typed programming, for `NatList` and `SymbolList`. Version 0.2.0.0 --------------- * **Breaking**: Changed the name of `someNatsVal'` to `someNatsValPos`, to break away from the "just add `'`" anti-pattern and to make the function name a bit more meaningful. * Added `reifyNats'`, a "safe" version of `reifyNats`. Ideally, `reifyNats` should be the safe one, but its connection to `reifyNat` from the *reflection* package is very strong and worth preserving, I think. Version 0.1.2.0 --------------- * Added `mapNatList'` and `mapSymbolList'` companions to `mapNatList` and `mapSymbolList`; they use `NatList` and `SymbolList` instead of Rank-2 types, so they can work better with function composition with `(.)` and other things that Rank-2 types would have trouble with. * Added `sameNats` and `sameSymbols`, modeled after `sameNat` and `sameSymbol`. They provide witnesses to GHC that `KnownNat`s passed in are both the same. Version 0.1.1.0 --------------- * Added strict fields to `NatList`, `SomeNats`, `SymbolList`, and `SomeSymbols`. It really doesn't make any sense for them to be lazy. Version 0.1.0.1 --------------- * Added README to the cabal package as an extra source file, for viewing on Hackage. Version 0.1.0.0 --------------- * Initial version.