liquidhaskell-0.9.10.1: Liquid Types for Haskell
Safe HaskellNone
LanguageHaskell98

GHC.Real_LHAssumptions

Synopsis

Documentation

class (Real a, Enum a) => Integral a where #

Integral numbers, supporting integer division.

The Haskell Report defines no laws for Integral. However, Integral instances are customarily expected to define a Euclidean domain and have the following properties for the div/mod and quot/rem pairs, given suitable Euclidean functions f and g:

  • x = y * quot x y + rem x y with rem x y = fromInteger 0 or g (rem x y) < g y
  • x = y * div x y + mod x y with mod x y = fromInteger 0 or f (mod x y) < f y

An example of a suitable Euclidean function, for Integer's instance, is abs.

In addition, toInteger should be total, and fromInteger should be a left inverse for it, i.e. fromInteger (toInteger i) = i.

Minimal complete definition

quotRem, toInteger

Methods

quot :: a -> a -> a infixl 7 #

Integer division truncated toward zero.

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

rem :: a -> a -> a infixl 7 #

Integer remainder, satisfying

(x `quot` y)*y + (x `rem` y) == x

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

div :: a -> a -> a infixl 7 #

Integer division truncated toward negative infinity.

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

mod :: a -> a -> a infixl 7 #

Integer modulus, satisfying

(x `div` y)*y + (x `mod` y) == x

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

quotRem :: a -> a -> (a, a) #

Simultaneous quot and rem.

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

divMod :: a -> a -> (a, a) #

simultaneous div and mod.

WARNING: This function is partial (because it throws when 0 is passed as the divisor) for all the integer types in base.

toInteger :: a -> Integer #

Conversion to Integer.

Instances

Instances details
Integral CBool 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CInt -> CInt -> CInt #

rem :: CInt -> CInt -> CInt #

div :: CInt -> CInt -> CInt #

mod :: CInt -> CInt -> CInt #

quotRem :: CInt -> CInt -> (CInt, CInt) #

divMod :: CInt -> CInt -> (CInt, CInt) #

toInteger :: CInt -> Integer #

Integral CIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CLLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CPtrdiff 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSigAtomic 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSize 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CULLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CULong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CWchar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral IntPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Integral WordPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Integral Int16

@since base-2.01

Instance details

Defined in GHC.Internal.Int

Integral Int32

@since base-2.01

Instance details

Defined in GHC.Internal.Int

Integral Int64

@since base-2.01

Instance details

Defined in GHC.Internal.Int

Integral Int8

@since base-2.01

Instance details

Defined in GHC.Internal.Int

Methods

quot :: Int8 -> Int8 -> Int8 #

rem :: Int8 -> Int8 -> Int8 #

div :: Int8 -> Int8 -> Int8 #

mod :: Int8 -> Int8 -> Int8 #

quotRem :: Int8 -> Int8 -> (Int8, Int8) #

divMod :: Int8 -> Int8 -> (Int8, Int8) #

toInteger :: Int8 -> Integer #

Integral CBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CBlkSize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CClockId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CDev 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CDev -> CDev -> CDev #

rem :: CDev -> CDev -> CDev #

div :: CDev -> CDev -> CDev #

mod :: CDev -> CDev -> CDev #

quotRem :: CDev -> CDev -> (CDev, CDev) #

divMod :: CDev -> CDev -> (CDev, CDev) #

toInteger :: CDev -> Integer #

Integral CFsBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CFsFilCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CGid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CGid -> CGid -> CGid #

rem :: CGid -> CGid -> CGid #

div :: CGid -> CGid -> CGid #

mod :: CGid -> CGid -> CGid #

quotRem :: CGid -> CGid -> (CGid, CGid) #

divMod :: CGid -> CGid -> (CGid, CGid) #

toInteger :: CGid -> Integer #

Integral CId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CId -> CId -> CId #

rem :: CId -> CId -> CId #

div :: CId -> CId -> CId #

mod :: CId -> CId -> CId #

quotRem :: CId -> CId -> (CId, CId) #

divMod :: CId -> CId -> (CId, CId) #

toInteger :: CId -> Integer #

Integral CIno 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CIno -> CIno -> CIno #

rem :: CIno -> CIno -> CIno #

div :: CIno -> CIno -> CIno #

mod :: CIno -> CIno -> CIno #

quotRem :: CIno -> CIno -> (CIno, CIno) #

divMod :: CIno -> CIno -> (CIno, CIno) #

toInteger :: CIno -> Integer #

Integral CKey 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CKey -> CKey -> CKey #

rem :: CKey -> CKey -> CKey #

div :: CKey -> CKey -> CKey #

mod :: CKey -> CKey -> CKey #

quotRem :: CKey -> CKey -> (CKey, CKey) #

divMod :: CKey -> CKey -> (CKey, CKey) #

toInteger :: CKey -> Integer #

Integral CMode 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CNfds 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CNlink 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral COff 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: COff -> COff -> COff #

rem :: COff -> COff -> COff #

div :: COff -> COff -> COff #

mod :: COff -> COff -> COff #

quotRem :: COff -> COff -> (COff, COff) #

divMod :: COff -> COff -> (COff, COff) #

toInteger :: COff -> Integer #

Integral CPid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CPid -> CPid -> CPid #

rem :: CPid -> CPid -> CPid #

div :: CPid -> CPid -> CPid #

mod :: CPid -> CPid -> CPid #

quotRem :: CPid -> CPid -> (CPid, CPid) #

divMod :: CPid -> CPid -> (CPid, CPid) #

toInteger :: CPid -> Integer #

Integral CRLim 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CSocklen 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CSsize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CTcflag 
Instance details

Defined in GHC.Internal.System.Posix.Types

Integral CUid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CUid -> CUid -> CUid #

rem :: CUid -> CUid -> CUid #

div :: CUid -> CUid -> CUid #

mod :: CUid -> CUid -> CUid #

quotRem :: CUid -> CUid -> (CUid, CUid) #

divMod :: CUid -> CUid -> (CUid, CUid) #

toInteger :: CUid -> Integer #

Integral Fd 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: Fd -> Fd -> Fd #

rem :: Fd -> Fd -> Fd #

div :: Fd -> Fd -> Fd #

mod :: Fd -> Fd -> Fd #

quotRem :: Fd -> Fd -> (Fd, Fd) #

divMod :: Fd -> Fd -> (Fd, Fd) #

toInteger :: Fd -> Integer #

Integral Word16

@since base-2.01

Instance details

Defined in GHC.Internal.Word

Integral Word32

@since base-2.01

Instance details

Defined in GHC.Internal.Word

Integral Word64

@since base-2.01

Instance details

Defined in GHC.Internal.Word

Integral Word8

@since base-2.01

Instance details

Defined in GHC.Internal.Word

Integral Integer

@since base-2.0.1

Instance details

Defined in GHC.Internal.Real

Integral Natural

@since base-4.8.0.0

Instance details

Defined in GHC.Internal.Real

Integral Int

@since base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Int -> Int -> Int #

rem :: Int -> Int -> Int #

div :: Int -> Int -> Int #

mod :: Int -> Int -> Int #

quotRem :: Int -> Int -> (Int, Int) #

divMod :: Int -> Int -> (Int, Int) #

toInteger :: Int -> Integer #

Integral Word

@since base-2.01

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Word -> Word -> Word #

rem :: Word -> Word -> Word #

div :: Word -> Word -> Word #

mod :: Word -> Word -> Word #

quotRem :: Word -> Word -> (Word, Word) #

divMod :: Word -> Word -> (Word, Word) #

toInteger :: Word -> Integer #

Integral a => Integral (Identity a)

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Integral a => Integral (Const a b)

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Methods

quot :: Const a b -> Const a b -> Const a b #

rem :: Const a b -> Const a b -> Const a b #

div :: Const a b -> Const a b -> Const a b #

mod :: Const a b -> Const a b -> Const a b #

quotRem :: Const a b -> Const a b -> (Const a b, Const a b) #

divMod :: Const a b -> Const a b -> (Const a b, Const a b) #

toInteger :: Const a b -> Integer #

Integral (f (g a)) => Integral (Compose f g a)

Since: base-4.19.0.0

Instance details

Defined in Data.Functor.Compose

Methods

quot :: Compose f g a -> Compose f g a -> Compose f g a #

rem :: Compose f g a -> Compose f g a -> Compose f g a #

div :: Compose f g a -> Compose f g a -> Compose f g a #

mod :: Compose f g a -> Compose f g a -> Compose f g a #

quotRem :: Compose f g a -> Compose f g a -> (Compose f g a, Compose f g a) #

divMod :: Compose f g a -> Compose f g a -> (Compose f g a, Compose f g a) #

toInteger :: Compose f g a -> Integer #

class Num a => Fractional a where #

Fractional numbers, supporting real division.

The Haskell Report defines no laws for Fractional. However, (+) and (*) are customarily expected to define a division ring and have the following properties:

recip gives the multiplicative inverse
x * recip x = recip x * x = fromInteger 1
Totality of toRational
toRational is total
Coherence with toRational
if the type also implements Real, then fromRational is a left inverse for toRational, i.e. fromRational (toRational i) = i

Note that it isn't customarily expected that a type instance of Fractional implement a field. However, all instances in base do.

Minimal complete definition

fromRational, (recip | (/))

Methods

(/) :: a -> a -> a infixl 7 #

Fractional division.

recip :: a -> a #

Reciprocal fraction.

fromRational :: Rational -> a #

Conversion from a Rational (that is Ratio Integer). A floating literal stands for an application of fromRational to a value of type Rational, so such literals have type (Fractional a) => a.

Instances

Instances details
Fractional CDouble 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Fractional CFloat 
Instance details

Defined in GHC.Internal.Foreign.C.Types

RealFloat a => Fractional (Complex a)

Since: base-2.1

Instance details

Defined in Data.Complex

Methods

(/) :: Complex a -> Complex a -> Complex a #

recip :: Complex a -> Complex a #

fromRational :: Rational -> Complex a #

Fractional a => Fractional (Identity a)

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Fractional a => Fractional (Down a)

@since base-4.14.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

(/) :: Down a -> Down a -> Down a #

recip :: Down a -> Down a #

fromRational :: Rational -> Down a #

Integral a => Fractional (Ratio a)

@since base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

(/) :: Ratio a -> Ratio a -> Ratio a #

recip :: Ratio a -> Ratio a #

fromRational :: Rational -> Ratio a #

HasResolution a => Fractional (Fixed a)

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

(/) :: Fixed a -> Fixed a -> Fixed a #

recip :: Fixed a -> Fixed a #

fromRational :: Rational -> Fixed a #

Fractional a => Fractional (Op a b) 
Instance details

Defined in Data.Functor.Contravariant

Methods

(/) :: Op a b -> Op a b -> Op a b #

recip :: Op a b -> Op a b #

fromRational :: Rational -> Op a b #

Fractional a => Fractional (Const a b)

@since base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Methods

(/) :: Const a b -> Const a b -> Const a b #

recip :: Const a b -> Const a b #

fromRational :: Rational -> Const a b #

Fractional (f (g a)) => Fractional (Compose f g a)

Since: base-4.20.0.0

Instance details

Defined in Data.Functor.Compose

Methods

(/) :: Compose f g a -> Compose f g a -> Compose f g a #

recip :: Compose f g a -> Compose f g a #

fromRational :: Rational -> Compose f g a #