| Copyright | (C) 2013 Richard Eisenberg |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | Richard Eisenberg (rae@cs.brynmawr.edu) |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Singletons.Prelude.Eq
Description
Defines the SEq singleton version of the Eq type class.
Synopsis
- class PEq a where
- class SEq k where
- data (==@#@$) (l :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type))
- data (l :: a6989586621679311772) ==@#@$$ (l :: TyFun a6989586621679311772 Bool)
- type (==@#@$$$) (t :: a6989586621679311772) (t :: a6989586621679311772) = (==) t t
- data (/=@#@$) (l :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type))
- data (l :: a6989586621679311772) /=@#@$$ (l :: TyFun a6989586621679311772 Bool)
- type (/=@#@$$$) (t :: a6989586621679311772) (t :: a6989586621679311772) = (/=) t t
Documentation
The promoted analogue of Eq. If you supply no definition for '(==)',
then it defaults to a use of '(DTE.==)', from Data.Type.Equality.
Instances
| PEq Bool Source # | |
| PEq Ordering Source # | |
| PEq Type Source # | |
| PEq Nat Source # | |
| PEq Symbol Source # | |
| PEq () Source # | |
| PEq Void Source # | |
| PEq [a] Source # | |
| PEq (Maybe a) Source # | |
| PEq (NonEmpty a) Source # | |
| PEq (Either a b) Source # | |
| PEq (a, b) Source # | |
| PEq (a, b, c) Source # | |
| PEq (a, b, c, d) Source # | |
| PEq (a, b, c, d, e) Source # | |
| PEq (a, b, c, d, e, f) Source # | |
| PEq (a, b, c, d, e, f, g) 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 '(%/=)'.
Minimal complete definition
Methods
(%==) :: forall (a :: k) (b :: k). Sing a -> Sing b -> Sing (a == b) infix 4 Source #
Boolean equality on singletons
(%/=) :: forall (a :: k) (b :: k). Sing a -> Sing b -> Sing (a /= b) infix 4 Source #
Boolean disequality on singletons
(%/=) :: forall (a :: k) (b :: k). (a /= b) ~ Not (a == b) => Sing a -> Sing b -> Sing (a /= b) infix 4 Source #
Boolean disequality on singletons
Instances
| SEq Bool Source # | |
| SEq Ordering Source # | |
| SEq Type Source # | |
| SEq Nat Source # | |
| SEq Symbol Source # | |
| SEq () Source # | |
| SEq Void Source # | |
| (SEq a, SEq [a]) => SEq [a] Source # | |
| SEq a => SEq (Maybe a) Source # | |
| (SEq a, SEq [a]) => SEq (NonEmpty a) Source # | |
| (SEq a, SEq b) => SEq (Either a b) Source # | |
| (SEq a, SEq b) => SEq (a, b) Source # | |
| (SEq a, SEq b, SEq c) => SEq (a, b, c) Source # | |
| (SEq a, SEq b, SEq c, SEq d) => SEq (a, b, c, d) Source # | |
| (SEq a, SEq b, SEq c, SEq d, SEq e) => SEq (a, b, c, d, e) Source # | |
| (SEq a, SEq b, SEq c, SEq d, SEq e, SEq f) => SEq (a, b, c, d, e, f) Source # | |
| (SEq a, SEq b, SEq c, SEq d, SEq e, SEq f, SEq g) => SEq (a, b, c, d, e, f, g) Source # | |
data (==@#@$) (l :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type)) Source #
Instances
| SuppressUnusedWarnings ((==@#@$) :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type) -> *) Source # | |
Defined in Data.Singletons.Prelude.Eq Methods suppressUnusedWarnings :: () Source # | |
| type Apply ((==@#@$) :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type) -> *) (l :: a6989586621679311772) Source # | |
data (l :: a6989586621679311772) ==@#@$$ (l :: TyFun a6989586621679311772 Bool) Source #
type (==@#@$$$) (t :: a6989586621679311772) (t :: a6989586621679311772) = (==) t t Source #
data (/=@#@$) (l :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type)) Source #
Instances
| SuppressUnusedWarnings ((/=@#@$) :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type) -> *) Source # | |
Defined in Data.Singletons.Prelude.Eq Methods suppressUnusedWarnings :: () Source # | |
| type Apply ((/=@#@$) :: TyFun a6989586621679311772 (TyFun a6989586621679311772 Bool -> Type) -> *) (l :: a6989586621679311772) Source # | |
data (l :: a6989586621679311772) /=@#@$$ (l :: TyFun a6989586621679311772 Bool) Source #
type (/=@#@$$$) (t :: a6989586621679311772) (t :: a6989586621679311772) = (/=) t t Source #