exinst
Dependent pairs and their instances.
https://github.com/k0001/exinst
| LTS Haskell 24.17: | 0.9 | 
| Stackage Nightly 2025-10-31: | 0.9 | 
| Latest on Hackage: | 0.9 | 
exinst-0.9@sha256:f211026788df975db7e79f1104238e9dcb24fd9df663df1d8aa10ff398a574ba,1024Module documentation for 0.9
exinst
See the BSD3 LICENSE file to learn about the legal terms and conditions for this library.
Find documentation for this library in the top-level
Exinst
module.
Changes
Version 0.9
- 
BACKWARDS COMPATIBLE COMPILER ASSISTED CHANGE: The Show,Read,Eq,OrdandGenericinstances now live in theexinst-basepackage. This is so thatexinstdoesn’t need to depend on the largesingletons-base. Users wanting access to those instances need to importExinst.Baseexplicitly.
- 
Builds with GHC 9.4. 
- 
The tests for exinstnow live inexinst-base.
Version 0.8
- Builds with GHC 8.10 and singletons-2.7.
Version 0.7
- BACKWARDS COMPATIBLE COMPILER ASSISTED CHANGE: All of the cabal flags
for turning on and off instances were removed.  The hashableare now always exported from theexinst, and theaeson,bytes,cerealandserialiseinstances are now exported from new packagesexinst-aeson,exinst-bytes,exinst-cerealandexinst-serialise. The instances exported from those packages are the same as the ones exported withexinst-0.6.
Version 0.6
- 
The binaryanddeepseqCabal flags were removed since these two packages are always included with the GHC distribution, so it doesn’t make sense to make them optional.
- 
The optional dependencies hidden behind Cabal flags now apply to the test suite as well. 
- 
Builds with GHC 8.4. 
Version 0.5
- 
BREAKING: Depend on singletons == 2.3.*.
- 
Add same{1,2,3,4}.
- 
Add dependencies on cborgandserialise
- 
Add instances for serialise(binary CBOR encoding/decoding)
Version 0.4
- 
BREAKING: Decouple binaryandcerealinstances frombytes. This introduces a slight backwards incompatible change if you were using someSerialinstances that depended on host endianness (such asInt).
- 
Add P1,P2,P3,P4.
- 
Add S1,S2,S3,S4.
- 
Add Readinstances forSome{1,2,3,4}.
- 
Moved documentation from README.mdinto the top-levelExinstmodule.
Version 0.3.0.1
- 
Removed dependency on generic-random.
- 
Correctly deal with cabal flags for deepseqandhashable.
- 
Add binary’sData.Binary.Binaryandcereal’sData.Serialize.Serializeinstances forSome{1,2,3,4}. These instances are compatible with each other and rely on theData.Bytes.Serialinstances.
Version 0.3
- 
BREAKING: Renamed module Exinst.SingletonstoExinst.
- 
BREAKING: The Exinst.Instances.Basemodule is gone. Thebaseinstances are now exported fromExinst.
- 
Add Dict0.
- 
Re-export Constraintfrombase.
- 
Add Dict{0,2,3,4}instances forBool.
- 
Add GHC.Generics.Genericsupport forSome{1,2,3,4}. This only works for indexes withPEnumandPBoundedinstances.
- 
Added tests. 
- 
Added Test.QuickCheck.Arbitraryinstances forSome{1,2,3,4}inExinst.Instances.QuickCheck. These instances and their dependency onQuickCheckcan be toggled with thequickcheckCabal flag.
- 
Added Data.Aeson.{FromJSON,ToJSON}instances forSome{1,2,3,4}inExinst.Instances.Aeson. These instances and their dependency onaesoncan be toggled with theaesonCabal flag. These instances used to exist in now-deprecated theexinst-aesonpackage, and are compatible with them.
- 
Added Bytes.Serial.Serialinstances forSome{1,2,3,4}inExinst.Instances.Bytes. These instances and their dependency onbytescan be toggled with thebytesCabal flag. These instances used to exist in now-deprecated theexinst-bytespackage, and are compatible with them.
- 
Added Control.DeepSeq.NFDatainstances forSome{1,2,3,4}inExinst.Instances.DeepSeq. These instances and their dependency ondeepseqcan be toggled with thedeepseqCabal flag. These instances used to exist in now-deprecated theexinst-deepseqpackage, and are compatible with them.
- 
Added Data.Hashable.Hashableinstances forSome{1,2,3,4}inExinst.Instances.DeepSeq. These instances and their dependency onhashablecan be toggled with thehashableCabal flag. These instances used to exist in now-deprecated theexinst-hashablepackage, and are compatible with them.
Version 0.2
- 
Depend on singletons-2.2, which meansKProxyis gone.
- 
Add _Some{1,2,3,4}prisms.
- 
Add Dict1instance forBool.
- 
Add some{1,2,3,4}SingRep.
- 
Thanks to Sandy Maguire for having contributed to this release. 
Version 0.1.2
- 
Export the Some{1,2,3,4}constructors.
- 
Make all the fields in Some{1,2,3,4}strict.
- 
Relax upper bound on base,singletons,constraints.
- 
Re-export Dict(Dict)fromconstraints.
Version 0.1.1
- 
Relax upper bound on singletonsdependency.
- 
withSome{1,2,3,4}SingbringsSingIinstances to scope.
- 
Generalized the (* -> Constraint)parameter inDict{1,2,3,4}to(k -> Constraint).
Version 0.1
- Initial release.
