Copyright | (c) The University of Glasgow 2005 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | stable |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Equality
Documentation
The Eq
class defines equality (==
) and inequality (/=
).
All the basic datatypes exported by the Prelude are instances of Eq
,
and Eq
may be derived for any datatype whose constituents are also
instances of Eq
.
The Haskell Report defines no laws for Eq
. However, ==
is customarily
expected to implement an equivalence relationship where two values comparing
equal are indistinguishable by "public" functions, with a "public" function
being one not allowing to see implementation details. For example, for a
type representing non-normalised natural numbers modulo 100, a "public"
function doesn't make the difference between 1 and 201. It is expected to
have the following properties:
Instances
Eq Constr # | Equality of constructors Since: base-4.0.0.0 |
Eq ConstrRep # | Since: base-4.0.0.0 |
Eq DataRep # | Since: base-4.0.0.0 |
Eq Fixity # | Since: base-4.0.0.0 |
Eq All # | Since: base-2.1 |
Eq Any # | Since: base-2.1 |
Eq SomeTypeRep # | |
Defined in Data.Typeable.Internal (==) :: SomeTypeRep -> SomeTypeRep -> Bool Source # (/=) :: SomeTypeRep -> SomeTypeRep -> Bool Source # | |
Eq Unique # | |
Eq Version # | Since: base-2.1 |
Eq Void # | Since: base-4.8.0.0 |
Eq Errno # | Since: base-2.1 |
Eq CBool # | |
Eq CChar # | |
Eq CClock # | |
Eq CDouble # | |
Eq CFloat # | |
Eq CInt # | |
Eq CIntMax # | |
Eq CIntPtr # | |
Eq CLLong # | |
Eq CLong # | |
Eq CPtrdiff # | |
Eq CSChar # | |
Eq CSUSeconds # | |
Defined in Foreign.C.Types (==) :: CSUSeconds -> CSUSeconds -> Bool Source # (/=) :: CSUSeconds -> CSUSeconds -> Bool Source # | |
Eq CShort # | |
Eq CSigAtomic # | |
Defined in Foreign.C.Types (==) :: CSigAtomic -> CSigAtomic -> Bool Source # (/=) :: CSigAtomic -> CSigAtomic -> Bool Source # | |
Eq CSize # | |
Eq CTime # | |
Eq CUChar # | |
Eq CUInt # | |
Eq CUIntMax # | |
Eq CUIntPtr # | |
Eq CULLong # | |
Eq CULong # | |
Eq CUSeconds # | |
Eq CUShort # | |
Eq CWchar # | |
Eq IntPtr # | |
Eq WordPtr # | |
Eq ByteOrder # | Since: base-4.11.0.0 |
Eq BlockReason # | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync (==) :: BlockReason -> BlockReason -> Bool Source # (/=) :: BlockReason -> BlockReason -> Bool Source # | |
Eq ThreadId # | Since: base-4.2.0.0 |
Eq ThreadStatus # | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync (==) :: ThreadStatus -> ThreadStatus -> Bool Source # (/=) :: ThreadStatus -> ThreadStatus -> Bool Source # | |
Eq Event # | Since: base-4.4.0.0 |
Eq Lifetime # | Since: base-4.8.1.0 |
Eq FdKey # | Since: base-4.4.0.0 |
Eq TimeoutKey # | |
Defined in GHC.Event.TimeOut (==) :: TimeoutKey -> TimeoutKey -> Bool Source # (/=) :: TimeoutKey -> TimeoutKey -> Bool Source # | |
Eq ErrorCall # | Since: base-4.7.0.0 |
Eq ArithException # | Since: base-3.0 |
Defined in GHC.Exception.Type (==) :: ArithException -> ArithException -> Bool Source # (/=) :: ArithException -> ArithException -> Bool Source # | |
Eq SpecConstrAnnotation # | Since: base-4.3.0.0 |
Defined in GHC.Exts (==) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Source # (/=) :: SpecConstrAnnotation -> SpecConstrAnnotation -> Bool Source # | |
Eq Fingerprint # | Since: base-4.4.0.0 |
Defined in GHC.Fingerprint.Type (==) :: Fingerprint -> Fingerprint -> Bool Source # (/=) :: Fingerprint -> Fingerprint -> Bool Source # | |
Eq Associativity # | Since: base-4.6.0.0 |
Defined in GHC.Generics (==) :: Associativity -> Associativity -> Bool Source # (/=) :: Associativity -> Associativity -> Bool Source # | |
Eq DecidedStrictness # | Since: base-4.9.0.0 |
Defined in GHC.Generics (==) :: DecidedStrictness -> DecidedStrictness -> Bool Source # (/=) :: DecidedStrictness -> DecidedStrictness -> Bool Source # | |
Eq Fixity # | Since: base-4.6.0.0 |
Eq SourceStrictness # | Since: base-4.9.0.0 |
Defined in GHC.Generics (==) :: SourceStrictness -> SourceStrictness -> Bool Source # (/=) :: SourceStrictness -> SourceStrictness -> Bool Source # | |
Eq SourceUnpackedness # | Since: base-4.9.0.0 |
Defined in GHC.Generics (==) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source # (/=) :: SourceUnpackedness -> SourceUnpackedness -> Bool Source # | |
Eq MaskingState # | Since: base-4.3.0.0 |
Defined in GHC.IO (==) :: MaskingState -> MaskingState -> Bool Source # (/=) :: MaskingState -> MaskingState -> Bool Source # | |
Eq BufferState # | Since: base-4.2.0.0 |
Defined in GHC.IO.Buffer (==) :: BufferState -> BufferState -> Bool Source # (/=) :: BufferState -> BufferState -> Bool Source # | |
Eq IODeviceType # | Since: base-4.2.0.0 |
Defined in GHC.IO.Device (==) :: IODeviceType -> IODeviceType -> Bool Source # (/=) :: IODeviceType -> IODeviceType -> Bool Source # | |
Eq SeekMode # | Since: base-4.2.0.0 |
Eq CodingProgress # | Since: base-4.4.0.0 |
Defined in GHC.IO.Encoding.Types (==) :: CodingProgress -> CodingProgress -> Bool Source # (/=) :: CodingProgress -> CodingProgress -> Bool Source # | |
Eq ArrayException # | Since: base-4.2.0.0 |
Defined in GHC.IO.Exception (==) :: ArrayException -> ArrayException -> Bool Source # (/=) :: ArrayException -> ArrayException -> Bool Source # | |
Eq AsyncException # | Since: base-4.2.0.0 |
Defined in GHC.IO.Exception (==) :: AsyncException -> AsyncException -> Bool Source # (/=) :: AsyncException -> AsyncException -> Bool Source # | |
Eq ExitCode # | |
Eq IOErrorType # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception (==) :: IOErrorType -> IOErrorType -> Bool Source # (/=) :: IOErrorType -> IOErrorType -> Bool Source # | |
Eq IOException # | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception (==) :: IOException -> IOException -> Bool Source # (/=) :: IOException -> IOException -> Bool Source # | |
Eq HandlePosn # | Since: base-4.1.0.0 |
Defined in GHC.IO.Handle (==) :: HandlePosn -> HandlePosn -> Bool Source # (/=) :: HandlePosn -> HandlePosn -> Bool Source # | |
Eq BufferMode # | Since: base-4.2.0.0 |
Defined in GHC.IO.Handle.Types (==) :: BufferMode -> BufferMode -> Bool Source # (/=) :: BufferMode -> BufferMode -> Bool Source # | |
Eq Handle # | Since: base-4.1.0.0 |
Eq Newline # | Since: base-4.2.0.0 |
Eq NewlineMode # | Since: base-4.2.0.0 |
Defined in GHC.IO.Handle.Types (==) :: NewlineMode -> NewlineMode -> Bool Source # (/=) :: NewlineMode -> NewlineMode -> Bool Source # | |
Eq IOMode # | Since: base-4.2.0.0 |
Eq Int16 # | Since: base-2.1 |
Eq Int32 # | Since: base-2.1 |
Eq Int64 # | Since: base-2.1 |
Eq Int8 # | Since: base-2.1 |
Eq IoSubSystem # | |
Defined in GHC.RTS.Flags (==) :: IoSubSystem -> IoSubSystem -> Bool Source # (/=) :: IoSubSystem -> IoSubSystem -> Bool Source # | |
Eq SrcLoc # | Since: base-4.9.0.0 |
Eq SomeSymbol # | Since: base-4.7.0.0 |
Defined in GHC.TypeLits (==) :: SomeSymbol -> SomeSymbol -> Bool Source # (/=) :: SomeSymbol -> SomeSymbol -> Bool Source # | |
Eq SomeNat # | Since: base-4.7.0.0 |
Eq GeneralCategory # | Since: base-2.1 |
Defined in GHC.Unicode (==) :: GeneralCategory -> GeneralCategory -> Bool Source # (/=) :: GeneralCategory -> GeneralCategory -> Bool Source # | |
Eq Word16 # | Since: base-2.1 |
Eq Word32 # | Since: base-2.1 |
Eq Word64 # | Since: base-2.1 |
Eq CBlkCnt # | |
Eq CBlkSize # | |
Eq CCc # | |
Eq CClockId # | |
Eq CDev # | |
Eq CFsBlkCnt # | |
Eq CFsFilCnt # | |
Eq CGid # | |
Eq CId # | |
Eq CIno # | |
Eq CKey # | |
Eq CMode # | |
Eq CNfds # | |
Eq CNlink # | |
Eq COff # | |
Eq CPid # | |
Eq CRLim # | |
Eq CSocklen # | |
Eq CSpeed # | |
Eq CSsize # | |
Eq CTcflag # | |
Eq CTimer # | |
Eq CUid # | |
Eq Fd # | |
Eq Timeout # | |
Eq Lexeme # | Since: base-2.1 |
Eq Number # | Since: base-4.6.0.0 |
Eq BigNat | |
Eq Module | |
Eq Ordering | |
Eq TrName | |
Eq TyCon | |
Eq Word8 # | Since: base-2.1 |
Eq Integer | |
Eq Natural | |
Eq () | |
Eq Bool | |
Eq Char | |
Eq Double | Note that due to the presence of
Also note that
|
Eq Float | Note that due to the presence of
Also note that
|
Eq Int | |
Eq Word | |
Eq a => Eq (ZipList a) # | Since: base-4.7.0.0 |
Eq (Chan a) # | Since: base-4.4.0.0 |
Eq a => Eq (Complex a) # | Since: base-2.1 |
Eq a => Eq (Identity a) # | Since: base-4.8.0.0 |
Eq a => Eq (First a) # | Since: base-2.1 |
Eq a => Eq (Last a) # | Since: base-2.1 |
Eq a => Eq (Down a) # | Since: base-4.6.0.0 |
Eq a => Eq (First a) # | Since: base-4.9.0.0 |
Eq a => Eq (Last a) # | Since: base-4.9.0.0 |
Eq a => Eq (Max a) # | Since: base-4.9.0.0 |
Eq a => Eq (Min a) # | Since: base-4.9.0.0 |
Eq a => Eq (Option a) # | Since: base-4.9.0.0 |
Eq m => Eq (WrappedMonoid m) # | Since: base-4.9.0.0 |
Defined in Data.Semigroup (==) :: WrappedMonoid m -> WrappedMonoid m -> Bool Source # (/=) :: WrappedMonoid m -> WrappedMonoid m -> Bool Source # | |
Eq a => Eq (Dual a) # | Since: base-2.1 |
Eq a => Eq (Product a) # | Since: base-2.1 |
Eq a => Eq (Sum a) # | Since: base-2.1 |
Eq a => Eq (NonEmpty a) # | Since: base-4.9.0.0 |
Eq (TVar a) # | Since: base-4.8.0.0 |
Eq (ForeignPtr a) # | Since: base-2.1 |
Defined in GHC.ForeignPtr (==) :: ForeignPtr a -> ForeignPtr a -> Bool Source # (/=) :: ForeignPtr a -> ForeignPtr a -> Bool Source # | |
Eq p => Eq (Par1 p) # | Since: base-4.7.0.0 |
Eq (IORef a) # | Pointer equality. Since: base-4.0.0.0 |
Eq (MVar a) # | Since: base-4.1.0.0 |
Eq (FunPtr a) # | |
Eq (Ptr a) # | Since: base-2.1 |
Eq a => Eq (Ratio a) # | Since: base-2.1 |
Eq (StablePtr a) # | Since: base-2.1 |
Eq (StableName a) # | Since: base-2.1 |
Defined in GHC.StableName (==) :: StableName a -> StableName a -> Bool Source # (/=) :: StableName a -> StableName a -> Bool Source # | |
Eq a => Eq (Maybe a) # | Since: base-2.1 |
Eq a => Eq [a] | |
(Eq a, Eq b) => Eq (Either a b) # | Since: base-2.1 |
Eq (Fixed a) # | Since: base-2.1 |
Eq (Proxy s) # | Since: base-4.7.0.0 |
Eq a => Eq (Arg a b) # | Since: base-4.9.0.0 |
Eq (TypeRep a) # | Since: base-2.1 |
(Ix i, Eq e) => Eq (Array i e) # | Since: base-2.1 |
Eq (U1 p) # | Since: base-4.9.0.0 |
Eq (V1 p) # | Since: base-4.9.0.0 |
Eq (IOArray i e) # | Since: base-4.1.0.0 |
Eq (STRef s a) # | Pointer equality. Since: base-2.1 |
(Eq a, Eq b) => Eq (a, b) | |
Eq a => Eq (Const a b) # | Since: base-4.9.0.0 |
Eq (f a) => Eq (Ap f a) # | Since: base-4.12.0.0 |
Eq (f a) => Eq (Alt f a) # | Since: base-4.8.0.0 |
Eq (Coercion a b) # | Since: base-4.7.0.0 |
Eq (a :~: b) # | Since: base-4.7.0.0 |
Eq (STArray s i e) # | Since: base-2.1 |
Eq (f p) => Eq (Rec1 f p) # | Since: base-4.7.0.0 |
Eq (URec (Ptr ()) p) # | Since: base-4.9.0.0 |
Eq (URec Char p) # | Since: base-4.9.0.0 |
Eq (URec Double p) # | Since: base-4.9.0.0 |
Eq (URec Float p) # | |
Eq (URec Int p) # | Since: base-4.9.0.0 |
Eq (URec Word p) # | Since: base-4.9.0.0 |
(Eq a, Eq b, Eq c) => Eq (a, b, c) | |
(Eq1 f, Eq1 g, Eq a) => Eq (Product f g a) # | Since: base-4.9.0.0 |
(Eq1 f, Eq1 g, Eq a) => Eq (Sum f g a) # | Since: base-4.9.0.0 |
Eq (a :~~: b) # | Since: base-4.10.0.0 |
(Eq (f p), Eq (g p)) => Eq ((f :*: g) p) # | Since: base-4.7.0.0 |
(Eq (f p), Eq (g p)) => Eq ((f :+: g) p) # | Since: base-4.7.0.0 |
Eq c => Eq (K1 i c p) # | Since: base-4.7.0.0 |
(Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d) | |
(Eq1 f, Eq1 g, Eq a) => Eq (Compose f g a) # | Since: base-4.9.0.0 |
Eq (f (g p)) => Eq ((f :.: g) p) # | Since: base-4.7.0.0 |
Eq (f p) => Eq (M1 i c f p) # | Since: base-4.7.0.0 |
(Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | |
(Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) | |