constraint-tuples

Version 0.2 revision 0 uploaded by ryanglscott.

Package meta

Synopsis
Partially applicable constraint tuples
Description

This library provides classes and type aliases that emulate the behavior of GHC's constraint tuple syntax. Unlike GHC's built-in constraint tuples, the types in this library can be partially applied.

This library exposes four different modules that provide essentially the same API with slight differences in their implementation:

  • Data.Tuple.Constraint: A CTupleN class compiles to a dictionary data type with N fields. (When building with GHC 9.10 or later, this will simply re-export the constraint tuples offered by GHC.Classes.)

  • Data.Tuple.Constraint.ClassNewtype: A CTupleN class compiles to a newtype around the corresponding built-in constraint tuple type with N arguments.

  • Data.Tuple.Constraint.TypeFamily: A CTupleN type alias is a constraint tuple type constructor with N arguments obtained by way of a type family. This will compile to a built-in constraint tuple, but casted with a type family axiom.

  • Data.Tuple.Constraint.TypeSynonym: A CTupleN type alias is a constraint tuple type constructor with N arguments obtained by way of a type synonym. This will compile directly to a built-in constraint tuple.

Author
Ryan Scott
Bug reports
https://github.com/RyanGlScott/constraint-tuples/issues
Category
Data
Copyright
(C) 2018-2019 Ryan Scott
Homepage
https://github.com/RyanGlScott/constraint-tuples
Maintainer
ryan.gl.scott@gmail.com
Package URL
n/a
Stability
Stable

Components