exinst
Dependent pairs and their instances.
https://github.com/k0001/exinst
| LTS Haskell 24.18: | 0.9 | 
| Stackage Nightly 2025-11-03: | 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.