exinst

Dependent pairs and their instances. https://github.com/k0001/exinst

Latest on Hackage:0.8

See all snapshots exinst appears in

BSD-3-Clause licensed by Renzo Carbonara
Maintained by renzoλcarbonara.com.ar

Module documentation for 0.6

This version can be pinned in stack with:[email protected]:3cdb8134b74bd9c07ec32d29b2e676d1d26dbb50a246b0a640c3a0ff8189df86,3151

exinst

Build Status

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.6

  • The binary and deepseq Cabal 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 cborg and serialise

  • Add instances for serialise (binary CBOR encoding/decoding)

Version 0.4

  • BREAKING: Decouple binary and cereal instances from bytes. This introduces a slight backwards incompatible change if you were using some Serial instances that depended on host endianness (such as Int).

  • Add P1, P2, P3, P4.

  • Add S1, S2, S3, S4.

  • Add Read instances for Some{1,2,3,4}.

  • Moved documentation from README.md into the top-level Exinst module.

Version 0.3.0.1

  • Removed dependency on generic-random.

  • Correctly deal with cabal flags for deepseq and hashable.

  • Add binary’s Data.Binary.Binary and cereal’s Data.Serialize.Serialize instances for Some{1,2,3,4}. These instances are compatible with each other and rely on the Data.Bytes.Serial instances.

Version 0.3

  • BREAKING: Renamed module Exinst.Singletons to Exinst.

  • BREAKING: The Exinst.Instances.Base module is gone. The base instances are now exported from Exinst.

  • Add Dict0.

  • Re-export Constraint from base.

  • Add Dict{0,2,3,4} instances for Bool.

  • Add GHC.Generics.Generic support for Some{1,2,3,4}. This only works for indexes with PEnum and PBounded instances.

  • Added tests.

  • Added Test.QuickCheck.Arbitrary instances for Some{1,2,3,4} in Exinst.Instances.QuickCheck. These instances and their dependency on QuickCheck can be toggled with the quickcheck Cabal flag.

  • Added Data.Aeson.{FromJSON,ToJSON} instances for Some{1,2,3,4} in Exinst.Instances.Aeson. These instances and their dependency on aeson can be toggled with the aeson Cabal flag. These instances used to exist in now-deprecated the exinst-aeson package, and are compatible with them.

  • Added Bytes.Serial.Serial instances for Some{1,2,3,4} in Exinst.Instances.Bytes. These instances and their dependency on bytes can be toggled with the bytes Cabal flag. These instances used to exist in now-deprecated the exinst-bytes package, and are compatible with them.

  • Added Control.DeepSeq.NFData instances for Some{1,2,3,4} in Exinst.Instances.DeepSeq. These instances and their dependency on deepseq can be toggled with the deepseq Cabal flag. These instances used to exist in now-deprecated the exinst-deepseq package, and are compatible with them.

  • Added Data.Hashable.Hashable instances for Some{1,2,3,4} in Exinst.Instances.DeepSeq. These instances and their dependency on hashable can be toggled with the hashable Cabal flag. These instances used to exist in now-deprecated the exinst-hashable package, and are compatible with them.

Version 0.2

  • Depend on singletons-2.2, which means KProxy is gone.

  • Add _Some{1,2,3,4} prisms.

  • Add Dict1 instance for Bool.

  • 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) from constraints.

Version 0.1.1

  • Relax upper bound on singletons dependency.

  • withSome{1,2,3,4}Sing brings SingI instances to scope.

  • Generalized the (* -> Constraint) parameter in Dict{1,2,3,4} to (k -> Constraint).

Version 0.1

  • Initial release.