Partially applicable constraint tuples.
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
: ACTupleN
class compiles to a dictionary data type withN
fields.Data.Tuple.Constraint.ClassNewtype
: ACTupleN
class compiles to a newtype around the corresponding built-in constraint tuple type withN
arguments.Data.Tuple.Constraint.TypeFamily
: ACTupleN
type alias is a constraint tuple type constructor withN
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
: ACTupleN
type alias is a constraint tuple type constructor withN
arguments obtained by way of a type synonym. This will compile directly to a built-in constraint tuple, but because this requires use of GHC features only present on 8.0 or later, this module does not export anything on earlier versions of GHC.
constraint-tuples
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
: ACTupleN
class compiles to a dictionary data type withN
fields.Data.Tuple.Constraint.ClassNewtype
: ACTupleN
class compiles to a newtype around the corresponding built-in constraint tuple type withN
arguments.Data.Tuple.Constraint.TypeFamily
: ACTupleN
type alias is a constraint tuple type constructor withN
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
: ACTupleN
type alias is a constraint tuple type constructor withN
arguments obtained by way of a type synonym. This will compile directly to a built-in constraint tuple, but because this requires use of GHC features only present on 8.0 or later, this module does not export anything on earlier versions of GHC.