Copyright | (C) 2013 Richard Eisenberg |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Richard Eisenberg (eir@cis.upenn.edu) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | Haskell2010 |
Defines the SEq singleton version of the Eq type class.
Documentation
class kproxy ~ Proxy => PEq kproxy Source #
The promoted analogue of Eq
. If you supply no definition for '(:==)',
then it defaults to a use of '(==)', from Data.Type.Equality
.
PEq Bool (Proxy * Bool) Source # | |
PEq Ordering (Proxy * Ordering) Source # | |
PEq () (Proxy * ()) Source # | |
PEq [k0] (Proxy * [k0]) Source # | |
PEq (Maybe k0) (Proxy * (Maybe k0)) Source # | |
PEq (NonEmpty k0) (Proxy * (NonEmpty k0)) Source # | |
PEq (Either k0 k1) (Proxy * (Either k0 k1)) Source # | |
PEq (k0, k1) (Proxy * (k0, k1)) Source # | |
PEq (k0, k1, k2) (Proxy * (k0, k1, k2)) Source # | |
PEq (k0, k1, k2, k3) (Proxy * (k0, k1, k2, k3)) Source # | |
PEq (k0, k1, k2, k3, k4) (Proxy * (k0, k1, k2, k3, k4)) Source # | |
PEq (k0, k1, k2, k3, k4, k5) (Proxy * (k0, k1, k2, k3, k4, k5)) Source # | |
PEq (k0, k1, k2, k3, k4, k5, k6) (Proxy * (k0, k1, k2, k3, k4, k5, k6)) Source # | |
The singleton analogue of Eq
. Unlike the definition for Eq
, it is required
that instances define a body for '(%:==)'. You may also supply a body for '(%:/=)'.
(%:==) :: forall a b. Sing a -> Sing b -> Sing (a :== b) infix 4 Source #
Boolean equality on singletons
(%:/=) :: forall a b. Sing a -> Sing b -> Sing (a :/= b) infix 4 Source #
Boolean disequality on singletons
(%:/=) :: forall a b. (a :/= b) ~ Not (a :== b) => Sing a -> Sing b -> Sing (a :/= b) infix 4 Source #
Boolean disequality on singletons
SEq Bool Source # | |
SEq Ordering Source # | |
SEq () Source # | |
SEq a0 => SEq [a0] Source # | |
SEq a0 => SEq (Maybe a0) Source # | |
SEq a0 => SEq (NonEmpty a0) Source # | |
(SEq a0, SEq b0) => SEq (Either a0 b0) Source # | |
(SEq a0, SEq b0) => SEq (a0, b0) Source # | |
(SEq a0, SEq b0, SEq c0) => SEq (a0, b0, c0) Source # | |
(SEq a0, SEq b0, SEq c0, SEq d0) => SEq (a0, b0, c0, d0) Source # | |
(SEq a0, SEq b0, SEq c0, SEq d0, SEq e0) => SEq (a0, b0, c0, d0, e0) Source # | |
(SEq a0, SEq b0, SEq c0, SEq d0, SEq e0, SEq f0) => SEq (a0, b0, c0, d0, e0, f0) Source # | |
(SEq a0, SEq b0, SEq c0, SEq d0, SEq e0, SEq f0, SEq g0) => SEq (a0, b0, c0, d0, e0, f0, g0) Source # | |