lol-0.7.0.0: A library for lattice cryptography.

Copyright(c) Eric Crockett 2011-2017
Chris Peikert 2011-2017
LicenseGPL-3
Maintainerecrockett0@email.com
Stabilityexperimental
PortabilityPOSIX \( \def\Z{\mathbb{Z}} \) \( \def\C{\mathbb{C}} \)
Safe HaskellNone
LanguageHaskell2010

Crypto.Lol.Prelude

Contents

Description

A substitute for the Prelude that is more suitable for Lol. This module exports most of the Numeric Prelude and other frequently used modules, plus some low-level classes, missing instances, and assorted utility functions.

Synopsis

Classes and families

class Enumerable a where Source #

Poor man's Enum.

Methods

values :: [a] Source #

Instances
(Reflects q z, Ring z, Enum z) => Enumerable (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

values :: [ZqBasic q z] Source #

GFCtx fp d => Enumerable (GF fp d) Source # 
Instance details

Defined in Crypto.Lol.Types.FiniteField

Methods

values :: [GF fp d] Source #

class (ToInteger (ModRep a), Additive a) => Mod a where Source #

Represents a quotient group modulo some integer.

Associated Types

type ModRep a Source #

Methods

modulus :: ModRep a Source #

Instances
(Mod a, Mod b) => Mod (a, b) Source #

Product ring of \(\Z_q\)s as a \(\Z_q\) (with Integer modulus)

Instance details

Defined in Crypto.Lol.Prelude

Associated Types

type ModRep (a, b) :: Type Source #

Methods

modulus :: ModRep (a, b) Source #

(Reflects q z, ToInteger z) => Mod (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Associated Types

type ModRep (ZqBasic q z) :: Type Source #

Methods

modulus :: ModRep (ZqBasic q z) Source #

class (Additive a, Additive b) => Subgroup a b where Source #

Represents that a is a subgroup of b.

Methods

fromSubgroup :: a -> b Source #

Instances
(ToInteger z, RealField r, Reflects q z, Reflects q r) => Subgroup (ZqBasic q z) (RRq q r) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.RRq

Methods

fromSubgroup :: ZqBasic q z -> RRq q r Source #

class Reduce a b where Source #

Represents that b is a quotient group of a.

Methods

reduce :: a -> b Source #

Instances
(Reduce a b1, Reduce a b2) => Reduce a (b1, b2) Source #

Reduce into product ring.

Instance details

Defined in Crypto.Lol.Prelude

Methods

reduce :: a -> (b1, b2) Source #

(Reflects q z, ToInteger z) => Reduce Integer (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

reduce :: Integer -> ZqBasic q z Source #

(Reflects q z, IntegralDomain z) => Reduce z (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

reduce :: z -> ZqBasic q z Source #

(Reflects q r, RealField r) => Reduce r (RRq q r) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.RRq

Methods

reduce :: r -> RRq q r Source #

(Reduce (Cyc t m z) (Cyc t m a), Reduce (Cyc t m z) (Cyc t m b)) => Reduce (Cyc t m z) (Cyc t m (a, b)) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

Methods

reduce :: Cyc t m z -> Cyc t m (a, b) Source #

(Reflects q Double, FunctorCyc (Cyc t m) Double (RRq q Double)) => Reduce (Cyc t m Double) (Cyc t m (RRq q Double)) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

Methods

reduce :: Cyc t m Double -> Cyc t m (RRq q Double) Source #

(Reflects q Int64, Functor (t m)) => Reduce (Cyc t m Integer) (Cyc t m (ZqBasic q Int64)) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

Methods

reduce :: Cyc t m Integer -> Cyc t m (ZqBasic q Int64) Source #

Reduce (CycG t m Int64) (CycG t m (ZqBasic q Int64)) => Reduce (Cyc t m Int64) (Cyc t m (ZqBasic q Int64)) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

Methods

reduce :: Cyc t m Int64 -> Cyc t m (ZqBasic q Int64) Source #

(Fact m, Reduce a b, IFunctor t, IFElt t a, IFElt t b) => Reduce (CycRep t D m a) (CycRep t D m b) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

reduce :: CycRep t D m a -> CycRep t D m b Source #

(Fact m, Reduce a b, IFunctor t, IFElt t a, IFElt t b) => Reduce (CycRep t P m a) (CycRep t P m b) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

reduce :: CycRep t P m a -> CycRep t P m b Source #

Reduce (c s z) (c s zp) => Reduce (Linear c e r s z) (Linear c e r s zp) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Linear

Methods

reduce :: Linear c e r s z -> Linear c e r s zp Source #

type family LiftOf b Source #

The type of representatives of b.

Instances
type LiftOf (a, b) Source # 
Instance details

Defined in Crypto.Lol.Prelude

type LiftOf (a, b) = Integer
type LiftOf (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

type LiftOf (ZqBasic q z) = z
type LiftOf (RRq q r) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.RRq

type LiftOf (RRq q r) = r
type LiftOf (Cyc t m r) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

type LiftOf (Cyc t m r) = Cyc t m (LiftOf r)
type LiftOf (CycRep t D m r) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

type LiftOf (CycRep t D m r) = CycRep t D m (LiftOf r)
type LiftOf (CycRep t P m r) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

type LiftOf (CycRep t P m r) = CycRep t P m (LiftOf r)
type LiftOf (Linear c e r s zp) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.Linear

type LiftOf (Linear c e r s zp) = Linear c e r s (LiftOf zp)

type Lift b a = (Lift' b, LiftOf b ~ a) Source #

Represents that b can be lifted to a "short" a congruent to b.

class Reduce (LiftOf b) b => Lift' b where Source #

Fun-dep version of Lift.

Methods

lift :: b -> LiftOf b Source #

Instances
(Mod a, Mod b, Lift' a, Lift' b, Reduce Integer (a, b), ToInteger (LiftOf a), ToInteger (LiftOf b)) => Lift' (a, b) Source #

Lift product ring of \(\Z_q\)s to Integer

Instance details

Defined in Crypto.Lol.Prelude

Methods

lift :: (a, b) -> LiftOf (a, b) Source #

(Reflects q z, Ring z, Ord z, IntegralDomain z) => Lift' (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

lift :: ZqBasic q z -> LiftOf (ZqBasic q z) Source #

(Reflects q r, Field r, Reduce r (RRq q r)) => Lift' (RRq q r) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.RRq

Methods

lift :: RRq q r -> LiftOf (RRq q r) Source #

(Lift' r, IFunctor t, IFElt t r, IFElt t (LiftOf r), Fact m) => Lift' (CycRep t D m r) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

lift :: CycRep t D m r -> LiftOf (CycRep t D m r) Source #

(Fact m, Lift' r, IFunctor t, IFElt t r, IFElt t (LiftOf r)) => Lift' (CycRep t P m r) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

lift :: CycRep t P m r -> LiftOf (CycRep t P m r) Source #

class (Additive a, Additive b) => Rescale a b where Source #

Represents that a can be rescaled to b, as an "approximate" additive homomorphism.

Methods

rescale :: a -> b Source #

Instances
(Additive a, Rescale f (b, (c, (d, (e, f)))), Rescale (b, (c, (d, (e, f)))) (a, (b, (c, (d, (e, f)))))) => Rescale f (a, (b, (c, (d, (e, f))))) Source #

Rescale up by a product of five rings

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: f -> (a, (b, (c, (d, (e, f))))) Source #

(Additive a, Rescale e (b, (c, (d, e))), Rescale (b, (c, (d, e))) (a, (b, (c, (d, e))))) => Rescale e (a, (b, (c, (d, e)))) Source #

Rescale up by a product of four rings

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: e -> (a, (b, (c, (d, e)))) Source #

(Additive a, Rescale d (b, (c, d)), Rescale (b, (c, d)) (a, (b, (c, d)))) => Rescale d (a, (b, (c, d))) Source #

Rescale up by a product of three rings

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: d -> (a, (b, (c, d))) Source #

(Additive a, Rescale c (b, c), Rescale (b, c) (a, (b, c))) => Rescale c (a, (b, c)) Source #

Rescale up by a product of two rings

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: c -> (a, (b, c)) Source #

(Ring b, Mod a, Reduce (ModRep a) b) => Rescale b (a, b) Source #

Rescale up to a product ring of \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: b -> (a, b) Source #

(Ring a, Mod b, Reduce (ModRep b) a) => Rescale a (a, b) Source #

Rescale up to a product ring of \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: a -> (a, b) Source #

(Rescale ((a, b), c) (a, b), Rescale (a, b) a, Additive a, Additive c) => Rescale ((a, b), c) a Source #

Rescale a (multi-)product ring of \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: ((a, b), c) -> a Source #

(Mod b, Field a, Lift b (ModRep b), Reduce (LiftOf b) a) => Rescale (a, b) a Source #

Rescale a product ring of \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, b) -> a Source #

(Rescale (a, (b, (c, (d, (e, f))))) (b, (c, (d, (e, f)))), Rescale (b, (c, (d, (e, f)))) f, Additive a) => Rescale (a, (b, (c, (d, (e, f))))) f Source #

Rescale down by a product ring of five \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, (b, (c, (d, (e, f))))) -> f Source #

(Rescale (a, (b, (c, (d, e)))) (b, (c, (d, e))), Rescale (b, (c, (d, e))) e, Additive a) => Rescale (a, (b, (c, (d, e)))) e Source #

Rescale down by a product ring of four \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, (b, (c, (d, e)))) -> e Source #

(Rescale (a, (b, (c, d))) (b, (c, d)), Rescale (b, (c, d)) d, Additive a) => Rescale (a, (b, (c, d))) d Source #

Rescale down by a product ring of three \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, (b, (c, d))) -> d Source #

(Rescale (a, (b, c)) (b, c), Rescale (b, c) c, Additive a, Additive c) => Rescale (a, (b, c)) c Source #

Rescale down by a product ring of two \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, (b, c)) -> c Source #

(Mod a, Field b, Lift a (ModRep a), Reduce (LiftOf a) b) => Rescale (a, b) b Source #

Rescale a product ring of \(\Z_q\)s

Instance details

Defined in Crypto.Lol.Prelude

Methods

rescale :: (a, b) -> b Source #

(Reflects q z, ToInteger z, Reflects q' z, Ring z) => Rescale (ZqBasic q z) (ZqBasic q' z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

rescale :: ZqBasic q z -> ZqBasic q' z Source #

(Additive (RRq q r), Additive (RRq p r)) => Rescale (RRq q r) (RRq p r) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.RRq

Methods

rescale :: RRq q r -> RRq p r Source #

(RescaleCyc (Cyc t m) a b, Fact m, Additive (Cyc t m a), Additive (Cyc t m b)) => Rescale (Cyc t m a) (Cyc t m b) Source #

Rescales relative to the powerful basis. This instance is provided for convenience, but usage of RescaleCyc is preferred to explicitly specify which basis by which to rescale.

Instance details

Defined in Crypto.Lol.Cyclotomic.Cyc

Methods

rescale :: Cyc t m a -> Cyc t m b Source #

(Rescale a b, TensorPowDec t a, TensorPowDec t b, Fact m) => Rescale (CycRep t D m a) (CycRep t D m b) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

rescale :: CycRep t D m a -> CycRep t D m b Source #

(Rescale a b, TensorPowDec t a, TensorPowDec t b, Fact m) => Rescale (CycRep t P m a) (CycRep t P m b) Source # 
Instance details

Defined in Crypto.Lol.Cyclotomic.CycRep

Methods

rescale :: CycRep t P m a -> CycRep t P m b Source #

class (Field src, Field tgt) => Encode src tgt where Source #

Represents that the target ring can "noisily encode" values from the source ring, in either "most significant digit" (MSD) or "least significant digit" (LSD) encodings, and provides conversion factors between the two types of encodings.

Methods

lsdToMSD :: (src, tgt) Source #

The factor that converts an element from LSD to MSD encoding in the target field, with associated scale factor to apply to correct the resulting encoded value.

Instances
(Encode s t1, Encode s t2, Field (t1, t2)) => Encode s (t1, t2) Source #

Encode for a product ring

Instance details

Defined in Crypto.Lol.Prelude

Methods

lsdToMSD :: (s, (t1, t2)) Source #

(Reflects p z, Reflects q z, IntegralDomain z, Field (ZqBasic q z), Field (ZqBasic p z)) => Encode (ZqBasic p z) (ZqBasic q z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

Methods

lsdToMSD :: (ZqBasic p z, ZqBasic q z) Source #

msdToLSD :: Encode src tgt => (src, tgt) Source #

Inverted entries of lsdToMSD.

type family CharOf fp :: k Source #

The characteristic of a ring, represented as a type.

Instances
type CharOf (ZqBasic p z) Source # 
Instance details

Defined in Crypto.Lol.Types.Unsafe.ZqBasic

type CharOf (ZqBasic p z) = p

Numeric

type Matrix a = T a Source #

Sane synonym for T.

type Polynomial a = T a Source #

Sane synonym for T.

type PID a = C a Source #

Sane synonym for C.

type RealIntegral a = C a Source #

Sane synonym for C.

type Absolute a = C a Source #

Sane synonym for C.

type ToInteger a = C a Source #

Sane synonym for C.

type OrdFloat a = (Ord a, Transcendental a) Source #

Convenient synonym for (Ord a, Transcendental a)

type RealTranscendental a = C a Source #

Sane synonym for C.

type Transcendental a = C a Source #

Sane synonym for C.

type Algebraic a = C a Source #

Sane synonym for C.

type RealField a = C a Source #

Sane synonym for C.

type RealRing a = C a Source #

Sane synonym for C.

type Field a = C a Source #

Sane synonym for C.

type ToRational a = C a Source #

Sane synonym for C.

type IntegralDomain a = C a Source #

Sane synonym for C.

type Module a v = C a v Source #

Sane synonym for C.

type Ring a = C a Source #

Sane synonym for C.

type Additive a = C a Source #

Sane synonym for C.

type ZeroTestable a = C a Source #

Sane synonym for C.

max :: Ord a => a -> a -> a Source #

The Prelude definition of max.

min :: Ord a => a -> a -> a Source #

The Prelude definition of min.

abs :: Absolute a => a -> a Source #

The sane definition of abs from Numeric rather than the default from NumericPrelude.

realToField :: (Field b, ToRational a) => a -> b Source #

The hidden NP function from Algebra.ToRational.

(^) :: forall a i. (Ring a, ToInteger i) => a -> i -> a Source #

Our custom exponentiation, overriding NP's version that requires Integer exponent. Copied from http://hackage.haskell.org/package/base-4.7.0.0/docs/src/GHC-Real.html#%5E

modinv :: (PID i, Eq i) => i -> i -> Maybe i Source #

Inverse of \(a\) modulo \(q\), in range \([0,q-1]\). (Argument order is infix-friendly.)

decomp :: (IntegralDomain z, Ord z) => [z] -> z -> [z] Source #

Decompose an element into a list of "centered" digits with respect to relative radices.

roundMult :: (RealField r, ToInteger i) => i -> r -> i Source #

Deterministically round to the nearest multiple of \( i \).

roundScalarCentered :: (RealField r, Random r, ToInteger i, MonadRandom mon) => i -> r -> mon i Source #

Randomly round to the nearest larger or smaller multiple of \( i \), where the round-off term has expectation zero.

divModCent Source #

Arguments

:: IntegralDomain i 
=> i

dividend \(a\)

-> i

divisor \(b\)

-> (i, i)

(quotient, remainder)

Variant of divMod in which the remainder is in the range \([-b/2,b/2)\).

(++) :: [a] -> [a] -> [a] infixr 5 #

Append two lists, i.e.,

[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]

If the first list is not finite, the result is the first list.

seq :: a -> b -> b #

The value of seq a b is bottom if a is bottom, and otherwise equal to b. In other words, it evaluates the first argument a to weak head normal form (WHNF). seq is usually introduced to improve performance by avoiding unneeded laziness.

A note on evaluation order: the expression seq a b does not guarantee that a will be evaluated before b. The only guarantee given by seq is that the both a and b will be evaluated before seq returns a value. In particular, this means that b may be evaluated before a. If you need to guarantee a specific order of evaluation, you must use the function pseq from the "parallel" package.

filter :: (a -> Bool) -> [a] -> [a] #

filter, applied to a predicate and a list, returns the list of those elements that satisfy the predicate; i.e.,

filter p xs = [ x | x <- xs, p x]

zip :: [a] -> [b] -> [(a, b)] #

zip takes two lists and returns a list of corresponding pairs.

zip [1, 2] ['a', 'b'] = [(1, 'a'), (2, 'b')]

If one input list is short, excess elements of the longer list are discarded:

zip [1] ['a', 'b'] = [(1, 'a')]
zip [1, 2] ['a'] = [(1, 'a')]

zip is right-lazy:

zip [] _|_ = []
zip _|_ [] = _|_

print :: Show a => a -> IO () #

The print function outputs a value of any printable type to the standard output device. Printable types are those that are instances of class Show; print converts values to strings for output using the show operation and adds a newline.

For example, a program to print the first 20 integers and their powers of 2 could be written as:

main = print ([(n, 2^n) | n <- [0..19]])

fst :: (a, b) -> a #

Extract the first component of a pair.

snd :: (a, b) -> b #

Extract the second component of a pair.

otherwise :: Bool #

otherwise is defined as the value True. It helps to make guards more readable. eg.

 f x | x < 0     = ...
     | otherwise = ...

map :: (a -> b) -> [a] -> [b] #

map f xs is the list obtained by applying f to each element of xs, i.e.,

map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
map f [x1, x2, ...] == [f x1, f x2, ...]

($) :: (a -> b) -> a -> b infixr 0 #

Application operator. This operator is redundant, since ordinary application (f x) means the same as (f $ x). However, $ has low, right-associative binding precedence, so it sometimes allows parentheses to be omitted; for example:

f $ g $ h x  =  f (g (h x))

It is also useful in higher-order situations, such as map ($ 0) xs, or zipWith ($) fs xs.

Note that ($) is levity-polymorphic in its result type, so that foo $ True where foo :: Bool -> Int# is well-typed

realToFrac :: (Real a, Fractional b) => a -> b #

general coercion to fractional types

class Bounded a where #

The Bounded class is used to name the upper and lower limits of a type. Ord is not a superclass of Bounded since types that are not totally ordered may also have upper and lower bounds.

The Bounded class may be derived for any enumeration type; minBound is the first constructor listed in the data declaration and maxBound is the last. Bounded may also be derived for single-constructor datatypes whose constituent types are in Bounded.

Methods

minBound :: a #

maxBound :: a #

Instances
Bounded Bool

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Char

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Int

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: Int #

maxBound :: Int #

Bounded Int8

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int16

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int32

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int64

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Ordering

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Word

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Word8

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word16

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word32

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word64

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded VecCount

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded VecElem

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded ()

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: () #

maxBound :: () #

Bounded Color 
Instance details

Defined in System.Console.ANSI.Types

Bounded ColorIntensity 
Instance details

Defined in System.Console.ANSI.Types

Bounded ConsoleLayer 
Instance details

Defined in System.Console.ANSI.Types

Bounded BlinkSpeed 
Instance details

Defined in System.Console.ANSI.Types

Bounded Underlining 
Instance details

Defined in System.Console.ANSI.Types

Bounded ConsoleIntensity 
Instance details

Defined in System.Console.ANSI.Types

Bounded All

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: All #

maxBound :: All #

Bounded Any

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: Any #

maxBound :: Any #

Bounded Associativity

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded CChar 
Instance details

Defined in Foreign.C.Types

Bounded CSChar 
Instance details

Defined in Foreign.C.Types

Bounded CUChar 
Instance details

Defined in Foreign.C.Types

Bounded CShort 
Instance details

Defined in Foreign.C.Types

Bounded CUShort 
Instance details

Defined in Foreign.C.Types

Bounded CInt 
Instance details

Defined in Foreign.C.Types

Bounded CUInt 
Instance details

Defined in Foreign.C.Types

Bounded CLong 
Instance details

Defined in Foreign.C.Types

Bounded CULong 
Instance details

Defined in Foreign.C.Types

Bounded CLLong 
Instance details

Defined in Foreign.C.Types

Bounded CULLong 
Instance details

Defined in Foreign.C.Types

Bounded CBool 
Instance details

Defined in Foreign.C.Types

Bounded CPtrdiff 
Instance details

Defined in Foreign.C.Types

Bounded CSize 
Instance details

Defined in Foreign.C.Types

Bounded CWchar 
Instance details

Defined in Foreign.C.Types

Bounded CSigAtomic 
Instance details

Defined in Foreign.C.Types

Bounded CIntPtr 
Instance details

Defined in Foreign.C.Types

Bounded CUIntPtr 
Instance details

Defined in Foreign.C.Types

Bounded CIntMax 
Instance details

Defined in Foreign.C.Types

Bounded CUIntMax 
Instance details

Defined in Foreign.C.Types

Bounded MatchType 
Instance details

Defined in Criterion.Main.Options

Bounded Verbosity 
Instance details

Defined in Criterion.Types

Bounded FileType 
Instance details

Defined in System.Directory.Internal.Common

Bounded XdgDirectory 
Instance details

Defined in System.Directory.Internal.Common

Bounded XdgDirectoryList 
Instance details

Defined in System.Directory.Internal.Common

Bounded WireTag 
Instance details

Defined in Text.ProtocolBuffers.Basic

Bounded FieldId 
Instance details

Defined in Text.ProtocolBuffers.Basic

Bounded WireType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Bounded FieldType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Bounded EnumCode 
Instance details

Defined in Text.ProtocolBuffers.Basic

Class () (Bounded a) 
Instance details

Defined in Data.Constraint

Methods

cls :: Bounded a :- () #

a :=> (Bounded (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Bounded (Dict a) #

() :=> (Bounded Bool) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded Bool #

() :=> (Bounded Char) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded Char #

() :=> (Bounded Int) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded Int #

() :=> (Bounded Ordering) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded Ordering #

() :=> (Bounded Word) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded Word #

() :=> (Bounded ()) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Bounded () #

Bounded a => Bounded (Min a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: Min a #

maxBound :: Min a #

Bounded a => Bounded (Max a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: Max a #

maxBound :: Max a #

Bounded a => Bounded (First a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: First a #

maxBound :: First a #

Bounded a => Bounded (Last a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: Last a #

maxBound :: Last a #

Bounded m => Bounded (WrappedMonoid m)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Identity a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Bounded a => Bounded (Dual a)

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: Dual a #

maxBound :: Dual a #

Bounded a => Bounded (Sum a)

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: Sum a #

maxBound :: Sum a #

Bounded a => Bounded (Product a)

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

a => Bounded (Dict a) 
Instance details

Defined in Data.Constraint

Methods

minBound :: Dict a #

maxBound :: Dict a #

(Bounded a) :=> (Bounded (Identity a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Bounded a :- Bounded (Identity a) #

(Bounded a) :=> (Bounded (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Bounded a :- Bounded (Const a b) #

(Bounded a, Bounded b) => Bounded (a, b)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b) #

maxBound :: (a, b) #

Bounded (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

minBound :: Proxy t #

maxBound :: Proxy t #

(Bounded a, Bounded b) :=> (Bounded (a, b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: (Bounded a, Bounded b) :- Bounded (a, b) #

(Bounded a, Bounded b, Bounded c) => Bounded (a, b, c)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c) #

maxBound :: (a, b, c) #

Bounded a => Bounded (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

minBound :: Const a b #

maxBound :: Const a b #

(Applicative f, Bounded a) => Bounded (Ap f a)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

minBound :: Ap f a #

maxBound :: Ap f a #

a ~ b => Bounded (a :~: b)

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Equality

Methods

minBound :: a :~: b #

maxBound :: a :~: b #

Bounded b => Bounded (Tagged s b) 
Instance details

Defined in Data.Tagged

Methods

minBound :: Tagged s b #

maxBound :: Tagged s b #

(Bounded a, Bounded b, Bounded c, Bounded d) => Bounded (a, b, c, d)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d) #

maxBound :: (a, b, c, d) #

a ~~ b => Bounded (a :~~: b)

Since: base-4.10.0.0

Instance details

Defined in Data.Type.Equality

Methods

minBound :: a :~~: b #

maxBound :: a :~~: b #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e) => Bounded (a, b, c, d, e)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e) #

maxBound :: (a, b, c, d, e) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f) => Bounded (a, b, c, d, e, f)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f) #

maxBound :: (a, b, c, d, e, f) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g) => Bounded (a, b, c, d, e, f, g)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g) #

maxBound :: (a, b, c, d, e, f, g) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h) => Bounded (a, b, c, d, e, f, g, h)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h) #

maxBound :: (a, b, c, d, e, f, g, h) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i) => Bounded (a, b, c, d, e, f, g, h, i)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i) #

maxBound :: (a, b, c, d, e, f, g, h, i) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j) => Bounded (a, b, c, d, e, f, g, h, i, j)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j) #

maxBound :: (a, b, c, d, e, f, g, h, i, j) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k) => Bounded (a, b, c, d, e, f, g, h, i, j, k)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k) #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l) #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m) #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n, Bounded o) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

class Enum a where #

Class Enum defines operations on sequentially ordered types.

The enumFrom... methods are used in Haskell's translation of arithmetic sequences.

Instances of Enum may be derived for any enumeration type (types whose constructors have no fields). The nullary constructors are assumed to be numbered left-to-right by fromEnum from 0 through n-1. See Chapter 10 of the Haskell Report for more details.

For any type that is an instance of class Bounded as well as Enum, the following should hold:

   enumFrom     x   = enumFromTo     x maxBound
   enumFromThen x y = enumFromThenTo x y bound
     where
       bound | fromEnum y >= fromEnum x = maxBound
             | otherwise                = minBound

Minimal complete definition

toEnum, fromEnum

Methods

succ :: a -> a #

the successor of a value. For numeric types, succ adds 1.

pred :: a -> a #

the predecessor of a value. For numeric types, pred subtracts 1.

toEnum :: Int -> a #

Convert from an Int.

fromEnum :: a -> Int #

Convert to an Int. It is implementation-dependent what fromEnum returns when applied to a value that is too large to fit in an Int.

enumFrom :: a -> [a] #

Used in Haskell's translation of [n..] with [n..] = enumFrom n, a possible implementation being enumFrom n = n : enumFrom (succ n). For example:

  • enumFrom 4 :: [Integer] = [4,5,6,7,...]
  • enumFrom 6 :: [Int] = [6,7,8,9,...,maxBound :: Int]

enumFromThen :: a -> a -> [a] #

Used in Haskell's translation of [n,n'..] with [n,n'..] = enumFromThen n n', a possible implementation being enumFromThen n n' = n : n' : worker (f x) (f x n'), worker s v = v : worker s (s v), x = fromEnum n' - fromEnum n and f n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = y For example:

  • enumFromThen 4 6 :: [Integer] = [4,6,8,10...]
  • enumFromThen 6 2 :: [Int] = [6,2,-2,-6,...,minBound :: Int]

enumFromTo :: a -> a -> [a] #

Used in Haskell's translation of [n..m] with [n..m] = enumFromTo n m, a possible implementation being enumFromTo n m | n <= m = n : enumFromTo (succ n) m | otherwise = []. For example:

  • enumFromTo 6 10 :: [Int] = [6,7,8,9,10]
  • enumFromTo 42 1 :: [Integer] = []

enumFromThenTo :: a -> a -> a -> [a] #

Used in Haskell's translation of [n,n'..m] with [n,n'..m] = enumFromThenTo n n' m, a possible implementation being enumFromThenTo n n' m = worker (f x) (c x) n m, x = fromEnum n' - fromEnum n, c x = bool (>=) ((x 0) f n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = y and worker s c v m | c v m = v : worker s c (s v) m | otherwise = [] For example:

  • enumFromThenTo 4 2 -6 :: [Integer] = [4,2,0,-2,-4,-6]
  • enumFromThenTo 6 8 2 :: [Int] = []
Instances
Enum Bool

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: Bool -> Bool #

pred :: Bool -> Bool #

toEnum :: Int -> Bool #

fromEnum :: Bool -> Int #

enumFrom :: Bool -> [Bool] #

enumFromThen :: Bool -> Bool -> [Bool] #

enumFromTo :: Bool -> Bool -> [Bool] #

enumFromThenTo :: Bool -> Bool -> Bool -> [Bool] #

Enum Char

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: Char -> Char #

pred :: Char -> Char #

toEnum :: Int -> Char #

fromEnum :: Char -> Int #

enumFrom :: Char -> [Char] #

enumFromThen :: Char -> Char -> [Char] #

enumFromTo :: Char -> Char -> [Char] #

enumFromThenTo :: Char -> Char -> Char -> [Char] #

Enum Int

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: Int -> Int #

pred :: Int -> Int #

toEnum :: Int -> Int #

fromEnum :: Int -> Int #

enumFrom :: Int -> [Int] #

enumFromThen :: Int -> Int -> [Int] #

enumFromTo :: Int -> Int -> [Int] #

enumFromThenTo :: Int -> Int -> Int -> [Int] #

Enum Int8

Since: base-2.1

Instance details

Defined in GHC.Int

Methods

succ :: Int8 -> Int8 #

pred :: Int8 -> Int8 #

toEnum :: Int -> Int8 #

fromEnum :: Int8 -> Int #

enumFrom :: Int8 -> [Int8] #

enumFromThen :: Int8 -> Int8 -> [Int8] #

enumFromTo :: Int8 -> Int8 -> [Int8] #

enumFromThenTo :: Int8 -> Int8 -> Int8 -> [Int8] #

Enum Int16

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int32

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int64

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Integer

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Enum

Enum Ordering

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Word

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: Word -> Word #

pred :: Word -> Word #

toEnum :: Int -> Word #

fromEnum :: Word -> Int #

enumFrom :: Word -> [Word] #

enumFromThen :: Word -> Word -> [Word] #

enumFromTo :: Word -> Word -> [Word] #

enumFromThenTo :: Word -> Word -> Word -> [Word] #

Enum Word8

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word16

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word32

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word64

Since: base-2.1

Instance details

Defined in GHC.Word

Enum VecCount

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum VecElem

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum ()

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: () -> () #

pred :: () -> () #

toEnum :: Int -> () #

fromEnum :: () -> Int #

enumFrom :: () -> [()] #

enumFromThen :: () -> () -> [()] #

enumFromTo :: () -> () -> [()] #

enumFromThenTo :: () -> () -> () -> [()] #

Enum Color 
Instance details

Defined in System.Console.ANSI.Types

Enum ColorIntensity 
Instance details

Defined in System.Console.ANSI.Types

Enum ConsoleLayer 
Instance details

Defined in System.Console.ANSI.Types

Enum BlinkSpeed 
Instance details

Defined in System.Console.ANSI.Types

Enum Underlining 
Instance details

Defined in System.Console.ANSI.Types

Enum ConsoleIntensity 
Instance details

Defined in System.Console.ANSI.Types

Enum SeekMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Device

Enum Associativity

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum CChar 
Instance details

Defined in Foreign.C.Types

Enum CSChar 
Instance details

Defined in Foreign.C.Types

Enum CUChar 
Instance details

Defined in Foreign.C.Types

Enum CShort 
Instance details

Defined in Foreign.C.Types

Enum CUShort 
Instance details

Defined in Foreign.C.Types

Enum CInt 
Instance details

Defined in Foreign.C.Types

Methods

succ :: CInt -> CInt #

pred :: CInt -> CInt #

toEnum :: Int -> CInt #

fromEnum :: CInt -> Int #

enumFrom :: CInt -> [CInt] #

enumFromThen :: CInt -> CInt -> [CInt] #

enumFromTo :: CInt -> CInt -> [CInt] #

enumFromThenTo :: CInt -> CInt -> CInt -> [CInt] #

Enum CUInt 
Instance details

Defined in Foreign.C.Types

Enum CLong 
Instance details

Defined in Foreign.C.Types

Enum CULong 
Instance details

Defined in Foreign.C.Types

Enum CLLong 
Instance details

Defined in Foreign.C.Types

Enum CULLong 
Instance details

Defined in Foreign.C.Types

Enum CBool 
Instance details

Defined in Foreign.C.Types

Enum CFloat 
Instance details

Defined in Foreign.C.Types

Enum CDouble 
Instance details

Defined in Foreign.C.Types

Enum CPtrdiff 
Instance details

Defined in Foreign.C.Types

Enum CSize 
Instance details

Defined in Foreign.C.Types

Enum CWchar 
Instance details

Defined in Foreign.C.Types

Enum CSigAtomic 
Instance details

Defined in Foreign.C.Types

Enum CClock 
Instance details

Defined in Foreign.C.Types

Enum CTime 
Instance details

Defined in Foreign.C.Types

Enum CUSeconds 
Instance details

Defined in Foreign.C.Types

Enum CSUSeconds 
Instance details

Defined in Foreign.C.Types

Enum CIntPtr 
Instance details

Defined in Foreign.C.Types

Enum CUIntPtr 
Instance details

Defined in Foreign.C.Types

Enum CIntMax 
Instance details

Defined in Foreign.C.Types

Enum CUIntMax 
Instance details

Defined in Foreign.C.Types

Enum IOMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.IOMode

Enum MatchType 
Instance details

Defined in Criterion.Main.Options

Enum Verbosity 
Instance details

Defined in Criterion.Types

Enum FileType 
Instance details

Defined in System.Directory.Internal.Common

Enum XdgDirectory 
Instance details

Defined in System.Directory.Internal.Common

Enum XdgDirectoryList 
Instance details

Defined in System.Directory.Internal.Common

Enum Extension 
Instance details

Defined in GHC.LanguageExtensions.Type

Enum Message 
Instance details

Defined in Text.Parsec.Error

Enum WireTag 
Instance details

Defined in Text.ProtocolBuffers.Basic

Enum FieldId 
Instance details

Defined in Text.ProtocolBuffers.Basic

Enum WireType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Enum FieldType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Enum Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

succ :: Day -> Day #

pred :: Day -> Day #

toEnum :: Int -> Day #

fromEnum :: Day -> Int #

enumFrom :: Day -> [Day] #

enumFromThen :: Day -> Day -> [Day] #

enumFromTo :: Day -> Day -> [Day] #

enumFromThenTo :: Day -> Day -> Day -> [Day] #

Class () (Enum a) 
Instance details

Defined in Data.Constraint

Methods

cls :: Enum a :- () #

a :=> (Enum (Dict a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: a :- Enum (Dict a) #

() :=> (Enum Bool) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Bool #

() :=> (Enum Char) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Char #

() :=> (Enum Double) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Double #

() :=> (Enum Float) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Float #

() :=> (Enum Int) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Int #

() :=> (Enum Integer) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Integer #

() :=> (Enum Natural) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Natural #

() :=> (Enum Ordering) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Ordering #

() :=> (Enum Word) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum Word #

() :=> (Enum ()) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Enum () #

Integral a => Enum (Ratio a)

Since: base-2.0.1

Instance details

Defined in GHC.Real

Methods

succ :: Ratio a -> Ratio a #

pred :: Ratio a -> Ratio a #

toEnum :: Int -> Ratio a #

fromEnum :: Ratio a -> Int #

enumFrom :: Ratio a -> [Ratio a] #

enumFromThen :: Ratio a -> Ratio a -> [Ratio a] #

enumFromTo :: Ratio a -> Ratio a -> [Ratio a] #

enumFromThenTo :: Ratio a -> Ratio a -> Ratio a -> [Ratio a] #

Enum (Fixed a)

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

succ :: Fixed a -> Fixed a #

pred :: Fixed a -> Fixed a #

toEnum :: Int -> Fixed a #

fromEnum :: Fixed a -> Int #

enumFrom :: Fixed a -> [Fixed a] #

enumFromThen :: Fixed a -> Fixed a -> [Fixed a] #

enumFromTo :: Fixed a -> Fixed a -> [Fixed a] #

enumFromThenTo :: Fixed a -> Fixed a -> Fixed a -> [Fixed a] #

Enum a => Enum (Min a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Min a -> Min a #

pred :: Min a -> Min a #

toEnum :: Int -> Min a #

fromEnum :: Min a -> Int #

enumFrom :: Min a -> [Min a] #

enumFromThen :: Min a -> Min a -> [Min a] #

enumFromTo :: Min a -> Min a -> [Min a] #

enumFromThenTo :: Min a -> Min a -> Min a -> [Min a] #

Enum a => Enum (Max a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Max a -> Max a #

pred :: Max a -> Max a #

toEnum :: Int -> Max a #

fromEnum :: Max a -> Int #

enumFrom :: Max a -> [Max a] #

enumFromThen :: Max a -> Max a -> [Max a] #

enumFromTo :: Max a -> Max a -> [Max a] #

enumFromThenTo :: Max a -> Max a -> Max a -> [Max a] #

Enum a => Enum (First a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: First a -> First a #

pred :: First a -> First a #

toEnum :: Int -> First a #

fromEnum :: First a -> Int #

enumFrom :: First a -> [First a] #

enumFromThen :: First a -> First a -> [First a] #

enumFromTo :: First a -> First a -> [First a] #

enumFromThenTo :: First a -> First a -> First a -> [First a] #

Enum a => Enum (Last a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Last a -> Last a #

pred :: Last a -> Last a #

toEnum :: Int -> Last a #

fromEnum :: Last a -> Int #

enumFrom :: Last a -> [Last a] #

enumFromThen :: Last a -> Last a -> [Last a] #

enumFromTo :: Last a -> Last a -> [Last a] #

enumFromThenTo :: Last a -> Last a -> Last a -> [Last a] #

Enum a => Enum (WrappedMonoid a)

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Enum a => Enum (Identity a)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

a => Enum (Dict a) 
Instance details

Defined in Data.Constraint

Methods

succ :: Dict a -> Dict a #

pred :: Dict a -> Dict a #

toEnum :: Int -> Dict a #

fromEnum :: Dict a -> Int #

enumFrom :: Dict a -> [Dict a] #

enumFromThen :: Dict a -> Dict a -> [Dict a] #

enumFromTo :: Dict a -> Dict a -> [Dict a] #

enumFromThenTo :: Dict a -> Dict a -> Dict a -> [Dict a] #

(Enum a) :=> (Enum (Identity a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Enum a :- Enum (Identity a) #

(Enum a) :=> (Enum (Const a b)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Enum a :- Enum (Const a b) #

(Integral a) :=> (Enum (Ratio a)) 
Instance details

Defined in Data.Constraint

Methods

ins :: Integral a :- Enum (Ratio a) #

Enum (Proxy s)

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

succ :: Proxy s -> Proxy s #

pred :: Proxy s -> Proxy s #

toEnum :: Int -> Proxy s #

fromEnum :: Proxy s -> Int #

enumFrom :: Proxy s -> [Proxy s] #

enumFromThen :: Proxy s -> Proxy s -> [Proxy s] #

enumFromTo :: Proxy s -> Proxy s -> [Proxy s] #

enumFromThenTo :: Proxy s -> Proxy s -> Proxy s -> [Proxy s] #

Class (Real a, Enum a) (Integral a) 
Instance details

Defined in Data.Constraint

Methods

cls :: Integral a :- (Real a, Enum a) #

Enum a => Enum (Const a b)

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

succ :: Const a b -> Const a b #

pred :: Const a b -> Const a b #

toEnum :: Int -> Const a b #

fromEnum :: Const a b -> Int #

enumFrom :: Const a b -> [Const a b] #

enumFromThen :: Const a b -> Const a b -> [Const a b] #

enumFromTo :: Const a b -> Const a b -> [Const a b] #

enumFromThenTo :: Const a b -> Const a b -> Const a b -> [Const a b] #

Enum (f a) => Enum (Ap f a)

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

succ :: Ap f a -> Ap f a #

pred :: Ap f a -> Ap f a #

toEnum :: Int -> Ap f a #

fromEnum :: Ap f a -> Int #

enumFrom :: Ap f a -> [Ap f a] #

enumFromThen :: Ap f a -> Ap f a -> [Ap f a] #

enumFromTo :: Ap f a -> Ap f a -> [Ap f a] #

enumFromThenTo :: Ap f a -> Ap f a -> Ap f a -> [Ap f a] #

Enum (f a) => Enum (Alt f a)

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

succ :: Alt f a -> Alt f a #

pred :: Alt f a -> Alt f a #

toEnum :: Int -> Alt f a #

fromEnum :: Alt f a -> Int #

enumFrom :: Alt f a -> [Alt f a] #

enumFromThen :: Alt f a -> Alt f a -> [Alt f a] #

enumFromTo :: Alt f a -> Alt f a -> [Alt f a] #

enumFromThenTo :: Alt f a -> Alt f a -> Alt f a -> [Alt f a] #

a ~ b => Enum (a :~: b)

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Equality

Methods

succ :: (a :~: b) -> a :~: b #

pred :: (a :~: b) -> a :~: b #

toEnum :: Int -> a :~: b #

fromEnum :: (a :~: b) -> Int #

enumFrom :: (a :~: b) -> [a :~: b] #

enumFromThen :: (a :~: b) -> (a :~: b) -> [a :~: b] #

enumFromTo :: (a :~: b) -> (a :~: b) -> [a :~: b] #

enumFromThenTo :: (a :~: b) -> (a :~: b) -> (a :~: b) -> [a :~: b] #

Enum a => Enum (Tagged s a) 
Instance details

Defined in Data.Tagged

Methods

succ :: Tagged s a -> Tagged s a #

pred :: Tagged s a -> Tagged s a #

toEnum :: Int -> Tagged s a #

fromEnum :: Tagged s a -> Int #

enumFrom :: Tagged s a -> [Tagged s a] #

enumFromThen :: Tagged s a -> Tagged s a -> [Tagged s a] #

enumFromTo :: Tagged s a -> Tagged s a -> [Tagged s a] #

enumFromThenTo :: Tagged s a -> Tagged s a -> Tagged s a -> [Tagged s a] #

a ~~ b => Enum (a :~~: b)

Since: base-4.10.0.0

Instance details

Defined in Data.Type.Equality

Methods

succ :: (a :~~: b) -> a :~~: b #

pred :: (a :~~: b) -> a :~~: b #

toEnum :: Int -> a :~~: b #

fromEnum :: (a :~~: b) -> Int #

enumFrom :: (a :~~: b) -> [a :~~: b] #

enumFromThen :: (a :~~: b) -> (a :~~: b) -> [a :~~: b] #

enumFromTo :: (a :~~: b) -> (a :~~: b) -> [a :~~: b] #

enumFromThenTo :: (a :~~: b) -> (a :~~: b) -> (a :~~: b) -> [a :~~: b] #

class Eq a where #

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:

Reflexivity
x == x = True
Symmetry
x == y = y == x
Transitivity
if x == y && y == z = True, then x == z = True
Substitutivity
if x == y = True and f is a "public" function whose return type is an instance of Eq, then f x == f y = True
Negation
x /= y = not (x == y)

Minimal complete definition: either == or /=.

Minimal complete definition

(==) | (/=)

Methods

(==) :: a -> a -> Bool infix 4 #

(/=) :: a -> a -> Bool infix 4 #

Instances
Eq Bool 
Instance details

Defined in GHC.Classes

Methods

(==) :: Bool -> Bool -> Bool #

(/=) :: Bool -> Bool -> Bool #

Eq Char 
Instance details

Defined in GHC.Classes

Methods

(==) :: Char -> Char -> Bool #

(/=) :: Char -> Char -> Bool #

Eq Double

Note that due to the presence of NaN, Double's Eq instance does not satisfy reflexivity.

>>> 0/0 == (0/0 :: Double)
False

Also note that Double's Eq instance does not satisfy substitutivity:

>>> 0 == (-0 :: Double)
True
>>> recip 0 == recip (-0 :: Double)
False
Instance details

Defined in GHC.Classes

Methods

(==) :: Double -> Double -> Bool #

(/=) :: Double -> Double -> Bool #

Eq Float

Note that due to the presence of NaN, Float's Eq instance does not satisfy reflexivity.

>>> 0/0 == (0/0 :: Float)
False

Also note that Float's Eq instance does not satisfy substitutivity:

>>> 0 == (-0 :: Float)
True
>>> recip 0 == recip (-0 :: Float)
False
Instance details

Defined in GHC.Classes

Methods

(==) :: Float -> Float -> Bool #

(/=) :: Float -> Float -> Bool #

Eq Int 
Instance details

Defined in GHC.Classes

Methods

(==) :: Int -> Int -> Bool #

(/=) :: Int -> Int -> Bool #

Eq Int8

Since: base-2.1

Instance details

Defined in GHC.Int

Methods

(==) :: Int8 -> Int8 -> Bool #

(/=) :: Int8 -> Int8 -> Bool #

Eq Int16

Since: base-2.1

Instance details

Defined in GHC.Int

Methods

(==) :: Int16 -> Int16 -> Bool #

(/=) :: Int16 -> Int16 -> Bool #

Eq Int32

Since: base-2.1

Instance details

Defined in GHC.Int

Methods

(==) :: Int32 -> Int32 -> Bool #

(/=) :: Int32 -> Int32 -> Bool #

Eq Int64

Since: base-2.1

Instance details

Defined in GHC.Int

Methods

(==) :: Int64 -> Int64 -> Bool #

(/=) :: Int64 -> Int64 -> Bool #

Eq Integer 
Instance details

Defined in GHC.Integer.Type

Methods

(==) :: Integer -> Integer -> Bool #

(/=) :: Integer -> Integer -> Bool #

Eq Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Natural

Methods

(==) :: Natural -> Natural -> Bool #

(/=) :: Natural -> Natural -> Bool #

Eq Ordering 
Instance details

Defined in GHC.Classes

Eq Word 
Instance details

Defined in GHC.Classes

Methods

(==) :: Word -> Word -> Bool #

(/=) :: Word -> Word -> Bool #

Eq Word8

Since: base-2.1

Instance details

Defined in GHC.Word

Methods

(==) :: Word8 -> Word8 -> Bool #

(/=) :: Word8 -> Word8 -> Bool #

Eq Word16

Since: base-2.1

Instance details

Defined in GHC.Word

Methods

(==) :: Word16 -> Word16 -> Bool #

(/=) :: Word16 -> Word16 -> Bool #

Eq Word32

Since: base-2.1

Instance details

Defined in GHC.Word

Methods

(==) :: Word32 -> Word32 -> Bool #

(/=) :: Word32 -> Word32 -> Bool #

Eq Word64

Since: base-2.1

Instance details

Defined in GHC.Word

Methods

(==) :: Word64 -> Word64 -> Bool #

(/=) :: Word64 -> Word64 -> Bool #

Eq SomeTypeRep 
Instance details

Defined in Data.Typeable.Internal

Eq Exp 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Exp -> Exp -> Bool #

(/=) :: Exp -> Exp -> Bool #

Eq Match 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Match -> Match -> Bool #

(/=) :: Match -> Match -> Bool #

Eq Clause 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Clause -> Clause -> Bool #

(/=) :: Clause -> Clause -> Bool #

Eq Pat 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Pat -> Pat -> Bool #

(/=) :: Pat -> Pat -> Bool #

Eq Type 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Eq Dec 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Dec -> Dec -> Bool #

(/=) :: Dec -> Dec -> Bool #

Eq Name 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Eq FunDep 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: FunDep -> FunDep -> Bool #

(/=) :: FunDep -> FunDep -> Bool #

Eq InjectivityAnn 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Overlap 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Overlap -> Overlap -> Bool #

(/=) :: Overlap -> Overlap -> Bool #

Eq () 
Instance details

Defined in GHC.Classes

Methods

(==) :: () -> () -> Bool #

(/=) :: () -> () -> Bool #

Eq TyCon 
Instance details

Defined in GHC.Classes

Methods

(==) :: TyCon -> TyCon -> Bool #

(/=) :: TyCon -> TyCon -> Bool #

Eq Module 
Instance details

Defined in GHC.Classes

Methods

(==) :: Module -> Module -> Bool #

(/=) :: Module -> Module -> Bool #

Eq TrName 
Instance details

Defined in GHC.Classes

Methods

(==) :: TrName -> TrName -> Bool #

(/=) :: TrName -> TrName -> Bool #

Eq Pos Source # 
Instance details

Defined in Crypto.Lol.PosBinDefs

Methods

(==) :: Pos -> Pos -> Bool #

(/=) :: Pos -> Pos -> Bool #

Eq Bin Source # 
Instance details

Defined in Crypto.Lol.PosBinDefs

Methods

(==) :: Bin -> Bin -> Bool #

(/=) :: Bin -> Bin -> Bool #

Eq PrimeBin Source # 
Instance details

Defined in Crypto.Lol.FactoredDefs

Eq PrimePower Source # 
Instance details

Defined in Crypto.Lol.FactoredDefs

Eq Factored Source # 
Instance details

Defined in Crypto.Lol.FactoredDefs

Eq Version

Since: base-2.1

Instance details

Defined in Data.Version

Methods

(==) :: Version -> Version -> Bool #

(/=) :: Version -> Version -> Bool #

Eq Con 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Con -> Con -> Bool #

(/=) :: Con -> Con -> Bool #

Eq ByteString 
Instance details

Defined in Data.ByteString.Internal

Eq ByteString 
Instance details

Defined in Data.ByteString.Lazy.Internal

Eq Scientific

Scientific numbers can be safely compared for equality. No magnitude 10^e is calculated so there's no risk of a blowup in space or time when comparing scientific numbers coming from untrusted sources.

Instance details

Defined in Data.Scientific

Eq UTCTime 
Instance details

Defined in Data.Time.Clock.Internal.UTCTime

Methods

(==) :: UTCTime -> UTCTime -> Bool #

(/=) :: UTCTime -> UTCTime -> Bool #

Eq JSONPathElement 
Instance details

Defined in Data.Aeson.Types.Internal

Eq Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

(==) :: Value -> Value -> Bool #

(/=) :: Value -> Value -> Bool #

Eq DotNetTime 
Instance details

Defined in Data.Aeson.Types.Internal

Eq SumEncoding 
Instance details

Defined in Data.Aeson.Types.Internal

Eq Color 
Instance details

Defined in System.Console.ANSI.Types

Methods

(==) :: Color -> Color -> Bool #

(/=) :: Color -> Color -> Bool #

Eq ColorIntensity 
Instance details

Defined in System.Console.ANSI.Types

Eq ConsoleLayer 
Instance details

Defined in System.Console.ANSI.Types

Eq BlinkSpeed 
Instance details

Defined in System.Console.ANSI.Types

Eq Underlining 
Instance details

Defined in System.Console.ANSI.Types

Eq ConsoleIntensity 
Instance details

Defined in System.Console.ANSI.Types

Eq SGR 
Instance details

Defined in System.Console.ANSI.Types

Methods

(==) :: SGR -> SGR -> Bool #

(/=) :: SGR -> SGR -> Bool #

Eq BigNat 
Instance details

Defined in GHC.Integer.Type

Methods

(==) :: BigNat -> BigNat -> Bool #

(/=) :: BigNat -> BigNat -> Bool #

Eq SomeNat

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeNats

Methods

(==) :: SomeNat -> SomeNat -> Bool #

(/=) :: SomeNat -> SomeNat -> Bool #

Eq Handle

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Handle.Types

Methods

(==) :: Handle -> Handle -> Bool #

(/=) :: Handle -> Handle -> Bool #

Eq ThreadId

Since: base-4.2.0.0

Instance details

Defined in GHC.Conc.Sync

Eq Pos 
Instance details

Defined in Data.Attoparsec.Internal.Types

Methods

(==) :: Pos -> Pos -> Bool #

(/=) :: Pos -> Pos -> Bool #

Eq More 
Instance details

Defined in Data.Attoparsec.Internal.Types

Methods

(==) :: More -> More -> Bool #

(/=) :: More -> More -> Bool #

Eq Void

Since: base-4.8.0.0

Instance details

Defined in Data.Void

Methods

(==) :: Void -> Void -> Bool #

(/=) :: Void -> Void -> Bool #

Eq SpecConstrAnnotation

Since: base-4.3.0.0

Instance details

Defined in GHC.Exts

Eq Constr

Equality of constructors

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

(==) :: Constr -> Constr -> Bool #

(/=) :: Constr -> Constr -> Bool #

Eq DataRep

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

(==) :: DataRep -> DataRep -> Bool #

(/=) :: DataRep -> DataRep -> Bool #

Eq ConstrRep

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Eq Fixity

Since: base-4.0.0.0

Instance details

Defined in Data.Data

Methods

(==) :: Fixity -> Fixity -> Bool #

(/=) :: Fixity -> Fixity -> Bool #

Eq Unique 
Instance details

Defined in Data.Unique

Methods

(==) :: Unique -> Unique -> Bool #

(/=) :: Unique -> Unique -> Bool #

Eq HandlePosn

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Handle

Eq BlockReason

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Eq ThreadStatus

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Eq AsyncException

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Exception

Eq ArrayException

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Exception

Eq ExitCode 
Instance details

Defined in GHC.IO.Exception

Eq IOErrorType

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Eq BufferMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Handle.Types

Eq Newline

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Handle.Types

Methods

(==) :: Newline -> Newline -> Bool #

(/=) :: Newline -> Newline -> Bool #

Eq NewlineMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Handle.Types

Eq IODeviceType

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Device

Eq SeekMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Device

Eq CodingProgress

Since: base-4.4.0.0

Instance details

Defined in GHC.IO.Encoding.Types

Eq MaskingState

Since: base-4.3.0.0

Instance details

Defined in GHC.IO

Eq IOException

Since: base-4.1.0.0

Instance details

Defined in GHC.IO.Exception

Eq All

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

(==) :: All -> All -> Bool #

(/=) :: All -> All -> Bool #

Eq Any

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

(==) :: Any -> Any -> Bool #

(/=) :: Any -> Any -> Bool #

Eq Fixity

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Methods

(==) :: Fixity -> Fixity -> Bool #

(/=) :: Fixity -> Fixity -> Bool #

Eq Associativity

Since: base-4.6.0.0

Instance details

Defined in GHC.Generics

Eq SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Eq SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Eq DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Eq SomeSymbol

Since: base-4.7.0.0

Instance details

Defined in GHC.TypeLits

Eq CChar 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CChar -> CChar -> Bool #

(/=) :: CChar -> CChar -> Bool #

Eq CSChar 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CSChar -> CSChar -> Bool #

(/=) :: CSChar -> CSChar -> Bool #

Eq CUChar 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CUChar -> CUChar -> Bool #

(/=) :: CUChar -> CUChar -> Bool #

Eq CShort 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CShort -> CShort -> Bool #

(/=) :: CShort -> CShort -> Bool #

Eq CUShort 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CUShort -> CUShort -> Bool #

(/=) :: CUShort -> CUShort -> Bool #

Eq CInt 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CInt -> CInt -> Bool #

(/=) :: CInt -> CInt -> Bool #

Eq CUInt 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CUInt -> CUInt -> Bool #

(/=) :: CUInt -> CUInt -> Bool #

Eq CLong 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CLong -> CLong -> Bool #

(/=) :: CLong -> CLong -> Bool #

Eq CULong 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CULong -> CULong -> Bool #

(/=) :: CULong -> CULong -> Bool #

Eq CLLong 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CLLong -> CLLong -> Bool #

(/=) :: CLLong -> CLLong -> Bool #

Eq CULLong 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CULLong -> CULLong -> Bool #

(/=) :: CULLong -> CULLong -> Bool #

Eq CBool 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CBool -> CBool -> Bool #

(/=) :: CBool -> CBool -> Bool #

Eq CFloat 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CFloat -> CFloat -> Bool #

(/=) :: CFloat -> CFloat -> Bool #

Eq CDouble 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CDouble -> CDouble -> Bool #

(/=) :: CDouble -> CDouble -> Bool #

Eq CPtrdiff 
Instance details

Defined in Foreign.C.Types

Eq CSize 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CSize -> CSize -> Bool #

(/=) :: CSize -> CSize -> Bool #

Eq CWchar 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CWchar -> CWchar -> Bool #

(/=) :: CWchar -> CWchar -> Bool #

Eq CSigAtomic 
Instance details

Defined in Foreign.C.Types

Eq CClock 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CClock -> CClock -> Bool #

(/=) :: CClock -> CClock -> Bool #

Eq CTime 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CTime -> CTime -> Bool #

(/=) :: CTime -> CTime -> Bool #

Eq CUSeconds 
Instance details

Defined in Foreign.C.Types

Eq CSUSeconds 
Instance details

Defined in Foreign.C.Types

Eq CIntPtr 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CIntPtr -> CIntPtr -> Bool #

(/=) :: CIntPtr -> CIntPtr -> Bool #

Eq CUIntPtr 
Instance details

Defined in Foreign.C.Types

Eq CIntMax 
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CIntMax -> CIntMax -> Bool #

(/=) :: CIntMax -> CIntMax -> Bool #

Eq CUIntMax 
Instance details

Defined in Foreign.C.Types

Eq IOMode

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.IOMode

Methods

(==) :: IOMode -> IOMode -> Bool #

(/=) :: IOMode -> IOMode -> Bool #

Eq Fingerprint

Since: base-4.4.0.0

Instance details

Defined in GHC.Fingerprint.Type

Eq SrcLoc

Since: base-4.9.0.0

Instance details

Defined in GHC.Stack.Types

Methods

(==) :: SrcLoc -> SrcLoc -> Bool #

(/=) :: SrcLoc -> SrcLoc -> Bool #

Eq IntSet 
Instance details

Defined in Data.IntSet.Internal

Methods

(==) :: IntSet -> IntSet -> Bool #

(/=) :: IntSet -> IntSet -> Bool #

Eq MatchType 
Instance details

Defined in Criterion.Main.Options

Eq Mode 
Instance details

Defined in Criterion.Main.Options

Methods

(==) :: Mode -> Mode -> Bool #

(/=) :: Mode -> Mode -> Bool #

Eq TemplateException 
Instance details

Defined in Criterion.Report

Eq Verbosity 
Instance details

Defined in Criterion.Types

Eq Config 
Instance details

Defined in Criterion.Types

Methods

(==) :: Config -> Config -> Bool #

(/=) :: Config -> Config -> Bool #

Eq Outliers 
Instance details

Defined in Criterion.Types

Eq OutlierEffect 
Instance details

Defined in Criterion.Types

Eq OutlierVariance 
Instance details

Defined in Criterion.Types

Eq Regression 
Instance details

Defined in Criterion.Types

Eq SampleAnalysis 
Instance details

Defined in Criterion.Types

Eq KDE 
Instance details

Defined in Criterion.Types

Methods

(==) :: KDE -> KDE -> Bool #

(/=) :: KDE -> KDE -> Bool #

Eq Report 
Instance details

Defined in Criterion.Types

Methods

(==) :: Report -> Report -> Bool #

(/=) :: Report -> Report -> Bool #

Eq DataRecord 
Instance details

Defined in Criterion.Types

Eq Measured 
Instance details

Defined in Criterion.Measurement.Types

Eq GCStatistics 
Instance details

Defined in Criterion.Measurement

Eq GenError 
Instance details

Defined in Crypto.Random

Eq ReseedInfo 
Instance details

Defined in Crypto.Random

Eq BlockCipherError 
Instance details

Defined in Crypto.Types

Eq FileType 
Instance details

Defined in System.Directory.Internal.Common

Eq Permissions 
Instance details

Defined in System.Directory.Internal.Common

Eq XdgDirectory 
Instance details

Defined in System.Directory.Internal.Common

Eq XdgDirectoryList 
Instance details

Defined in System.Directory.Internal.Common

Eq Extension 
Instance details

Defined in GHC.LanguageExtensions.Type

Eq ForeignSrcLang 
Instance details

Defined in GHC.ForeignSrcLang.Type

Eq KB2Sum 
Instance details

Defined in Numeric.Sum

Methods

(==) :: KB2Sum -> KB2Sum -> Bool #

(/=) :: KB2Sum -> KB2Sum -> Bool #

Eq KBNSum 
Instance details

Defined in Numeric.Sum

Methods

(==) :: KBNSum -> KBNSum -> Bool #

(/=) :: KBNSum -> KBNSum -> Bool #

Eq KahanSum 
Instance details

Defined in Numeric.Sum

Eq Tolerance 
Instance details

Defined in Numeric.RootFinding

Eq RiddersParam 
Instance details

Defined in Numeric.RootFinding

Eq RiddersStep 
Instance details

Defined in Numeric.RootFinding

Eq NewtonParam 
Instance details

Defined in Numeric.RootFinding

Eq NewtonStep 
Instance details

Defined in Numeric.RootFinding

Eq Template 
Instance details

Defined in Text.Microstache.Type

Eq Node 
Instance details

Defined in Text.Microstache.Type

Methods

(==) :: Node -> Node -> Bool #

(/=) :: Node -> Node -> Bool #

Eq Key 
Instance details

Defined in Text.Microstache.Type

Methods

(==) :: Key -> Key -> Bool #

(/=) :: Key -> Key -> Bool #

Eq PName 
Instance details

Defined in Text.Microstache.Type

Methods

(==) :: PName -> PName -> Bool #

(/=) :: PName -> PName -> Bool #

Eq MustacheException 
Instance details

Defined in Text.Microstache.Type

Eq MustacheWarning 
Instance details

Defined in Text.Microstache.Type

Eq Seed 
Instance details

Defined in System.Random.MWC

Methods

(==) :: Seed -> Seed -> Bool #

(/=) :: Seed -> Seed -> Bool #

Eq Message 
Instance details

Defined in Text.Parsec.Error

Methods

(==) :: Message -> Message -> Bool #

(/=) :: Message -> Message -> Bool #

Eq ParseError 
Instance details

Defined in Text.Parsec.Error

Eq Doc 
Instance details

Defined in Text.PrettyPrint.HughesPJ

Methods

(==) :: Doc -> Doc -> Bool #

(/=) :: Doc -> Doc -> Bool #

Eq TextDetails 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Eq Style 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

(==) :: Style -> Style -> Bool #

(/=) :: Style -> Style -> Bool #

Eq Mode 
Instance details

Defined in Text.PrettyPrint.Annotated.HughesPJ

Methods

(==) :: Mode -> Mode -> Bool #

(/=) :: Mode -> Mode -> Bool #

Eq ByteArray

Since: primitive-0.6.3.0

Instance details

Defined in Data.Primitive.ByteArray

Eq GPDyn 
Instance details

Defined in Text.ProtocolBuffers.Extensions

Methods

(==) :: GPDyn -> GPDyn -> Bool #

(/=) :: GPDyn -> GPDyn -> Bool #

Eq GPDynSeq 
Instance details

Defined in Text.ProtocolBuffers.Extensions

Methods

(==) :: GPDynSeq -> GPDynSeq -> Bool #

(/=) :: GPDynSeq -> GPDynSeq -> Bool #

Eq ExtFieldValue 
Instance details

Defined in Text.ProtocolBuffers.Extensions

Eq EP 
Instance details

Defined in Text.ProtocolBuffers.Extensions

Methods

(==) :: EP -> EP -> Bool #

(/=) :: EP -> EP -> Bool #

Eq ExtField 
Instance details

Defined in Text.ProtocolBuffers.Extensions

Eq UnknownField 
Instance details

Defined in Text.ProtocolBuffers.Unknown

Eq UnknownFieldValue 
Instance details

Defined in Text.ProtocolBuffers.Unknown

Eq ProtoName 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq ProtoFName 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq ProtoInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq DescriptorInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq GetMessageInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq FieldInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq HsDefault 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq SomeRealFloat 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq OneofInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq EnumInfo 
Instance details

Defined in Text.ProtocolBuffers.Reflections

Eq Utf8 
Instance details

Defined in Text.ProtocolBuffers.Basic

Methods

(==) :: Utf8 -> Utf8 -> Bool #

(/=) :: Utf8 -> Utf8 -> Bool #

Eq WireTag 
Instance details

Defined in Text.ProtocolBuffers.Basic

Methods

(==) :: WireTag -> WireTag -> Bool #

(/=) :: WireTag -> WireTag -> Bool #

Eq FieldId 
Instance details

Defined in Text.ProtocolBuffers.Basic

Methods

(==) :: FieldId -> FieldId -> Bool #

(/=) :: FieldId -> FieldId -> Bool #

Eq WireType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Eq FieldType 
Instance details

Defined in Text.ProtocolBuffers.Basic

Eq EnumCode 
Instance details

Defined in Text.ProtocolBuffers.Basic

Eq FileDescriptorProto 
Instance details

Defined in Text.DescriptorProtos.FileDescriptorProto

Eq Resample 
Instance details

Defined in Statistics.Resampling

Eq NormalDistribution 
Instance details

Defined in Statistics.Distribution.Normal

Eq ContParam 
Instance details

Defined in Statistics.Quantile

Eq ModName 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: ModName -> ModName -> Bool #

(/=) :: ModName -> ModName -> Bool #

Eq PkgName 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: PkgName -> PkgName -> Bool #

(/=) :: PkgName -> PkgName -> Bool #

Eq Module 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Module -> Module -> Bool #

(/=) :: Module -> Module -> Bool #

Eq OccName 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: OccName -> OccName -> Bool #

(/=) :: OccName -> OccName -> Bool #

Eq NameFlavour 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq NameSpace 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Loc 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Loc -> Loc -> Bool #

(/=) :: Loc -> Loc -> Bool #

Eq Info 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Info -> Info -> Bool #

(/=) :: Info -> Info -> Bool #

Eq ModuleInfo 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Fixity 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Fixity -> Fixity -> Bool #

(/=) :: Fixity -> Fixity -> Bool #

Eq FixityDirection 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Lit 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Lit -> Lit -> Bool #

(/=) :: Lit -> Lit -> Bool #

Eq Body 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Body -> Body -> Bool #

(/=) :: Body -> Body -> Bool #

Eq Guard 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Guard -> Guard -> Bool #

(/=) :: Guard -> Guard -> Bool #

Eq Stmt 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Stmt -> Stmt -> Bool #

(/=) :: Stmt -> Stmt -> Bool #

Eq Range 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Range -> Range -> Bool #

(/=) :: Range -> Range -> Bool #

Eq DerivClause 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq DerivStrategy 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq TypeFamilyHead 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq TySynEqn 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Foreign 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Foreign -> Foreign -> Bool #

(/=) :: Foreign -> Foreign -> Bool #

Eq Callconv 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Safety 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Safety -> Safety -> Bool #

(/=) :: Safety -> Safety -> Bool #

Eq Pragma 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Pragma -> Pragma -> Bool #

(/=) :: Pragma -> Pragma -> Bool #

Eq Inline 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Inline -> Inline -> Bool #

(/=) :: Inline -> Inline -> Bool #

Eq RuleMatch 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Phases 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Phases -> Phases -> Bool #

(/=) :: Phases -> Phases -> Bool #

Eq RuleBndr 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq AnnTarget 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq SourceUnpackedness 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq SourceStrictness 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq DecidedStrictness 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq Bang 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Bang -> Bang -> Bool #

(/=) :: Bang -> Bang -> Bool #

Eq PatSynDir 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq PatSynArgs 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq TyVarBndr 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq FamilyResultSig 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq TyLit 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: TyLit -> TyLit -> Bool #

(/=) :: TyLit -> TyLit -> Bool #

Eq Role 
Instance details

Defined in Language.Haskell.TH.Syntax

Methods

(==) :: Role -> Role -> Bool #

(/=) :: Role -> Role -> Bool #

Eq AnnLookup 
Instance details

Defined in Language.Haskell.TH.Syntax

Eq B 
Instance details

Defined in Data.Text.Short.Internal

Methods

(==) :: B -> B -> Bool #

(/=) :: B -> B -> Bool #

Eq ShortText 
Instance details

Defined in Data.Text.Short.Internal

Eq DatatypeInfo 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq DatatypeVariant 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq ConstructorInfo 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq ConstructorVariant 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq FieldStrictness 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq Unpackedness 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq Strictness 
Instance details

Defined in Language.Haskell.TH.Datatype

Eq NewOrData 
Instance details

Defined in Language.Haskell.TH.Desugar.AST

Eq LocalTime 
Instance details

Defined in Data.Time.LocalTime.Internal.LocalTime

Eq UniversalTime 
Instance details

Defined in Data.Time.Clock.Internal.UniversalTime

Eq AbsoluteTime 
Instance details

Defined in Data.Time.Clock.Internal.AbsoluteTime

Eq Day 
Instance details

Defined in Data.Time.Calendar.Days

Methods

(==) :: Day -> Day -> Bool #

(/=) :: Day -> Day -> Bool #

Eq UnpackedUUID 
Instance details

Defined in Data.UUID.Types.Internal

Methods

(==) :: UnpackedUUID -> UnpackedUUID -> Bool #

(/=) :: UnpackedUUID -> UnpackedUUID -> Bool #

Eq UUID 
Instance details

Defined in Data.UUID.Types.Internal

Methods

(==) :: UUID -> UUID -> Bool #

(/=) :: UUID -> UUID -> Bool #

Eq Verb Source # 
Instance details

Defined in Crypto.Lol.Utils.PrettyPrint

Methods

(==) :: Verb -> Verb -> Bool #

(/=) :: Verb -> Verb -> Bool #

Eq K Source # 
Instance details

Defined in Crypto.Proto.Lol.K

Methods

(==) :: K -> K -> Bool #

(/=) :: K -> K -> Bool #

Eq Kq Source # 
Instance details

Defined in Crypto.Proto.Lol.Kq

Methods

(==) :: Kq -> Kq -> Bool #

(/=) :: Kq -> Kq -> Bool #

Eq KqProduct Source # 
Instance details

Defined in Crypto.Proto.Lol.KqProduct

Eq R Source # 
Instance details

Defined in Crypto.Proto.Lol.R

Methods

(==) :: R -> R -> Bool #

(/=) :: R -> R -> Bool #

Eq Rq Source # 
Instance details

Defined in Crypto.Proto.Lol.Rq

Methods

(==) :: Rq -> Rq -> Bool #

(/=) :: Rq -> Rq -> Bool #

Eq RqProduct Source # 
Instance details

Defined in Crypto.Proto.Lol.RqProduct

Eq LinearRq Source # 
Instance details

Defined in Crypto.Proto.Lol.LinearRq

Eq TypeRep Source # 
Instance details

Defined in Crypto.Proto.Lol.TypeRep

Methods

(==) :: TypeRep -> TypeRep -> Bool #

(/=) :: TypeRep -> TypeRep -> Bool #

Eq SampleCont Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleCont

Eq SampleContProduct Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleContProduct

Eq SampleDisc Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleDisc

Eq SampleDiscProduct Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleDiscProduct

Eq SampleRLWR Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleRLWR

Eq SampleRLWRProduct Source # 
Instance details

Defined in Crypto.Proto.RLWE.SampleRLWRProduct

Class () (Eq a) 
Instance details

Defined in Data.Constraint

Methods

cls :: Eq a :- () #

() :=> (Eq Bool) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Eq Bool #

() :=> (Eq Double) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Eq Double #

() :=> (Eq Float) 
Instance details

Defined in Data.Constraint

Methods

ins :: () :- Eq Float #

() :=> (Eq Int) 
Instance details

Defined in