base-4.22.0.0: Core data structures and operations
Copyright(c) The University of Glasgow 1994-2002
Licensesee libraries/base/LICENSE
Maintainerghc-devs@haskell.org
Stabilityinternal
Portabilitynon-portable (GHC Extensions)
Safe HaskellSafe
LanguageHaskell2010

GHC.Real

Description

The types Ratio and Rational, and the classes Real, Fractional, Integral, and RealFrac.

Synopsis

Classes

class (Num a, Ord a) => Real a where Source #

Real numbers.

The Haskell report defines no laws for Real, however Real instances are customarily expected to adhere to the following law:

Coherence with fromRational
if the type also implements Fractional, then fromRational is a left inverse for toRational, i.e. fromRational (toRational i) = i

The law does not hold for Float, Double, CFloat, CDouble, etc., because these types contain non-finite values, which cannot be roundtripped through Rational.

Methods

toRational :: a -> Rational Source #

Rational equivalent of its real argument with full precision.

Instances

Instances details
Real CBool Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CBool -> Rational Source #

Real CChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CChar -> Rational Source #

Real CClock Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CClock -> Rational Source #

Real CDouble Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CDouble -> Rational Source #

Real CFloat Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CFloat -> Rational Source #

Real CInt Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CInt -> Rational Source #

Real CIntMax Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CIntMax -> Rational Source #

Real CIntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CIntPtr -> Rational Source #

Real CLLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CLLong -> Rational Source #

Real CLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CLong -> Rational Source #

Real CPtrdiff Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CPtrdiff -> Rational Source #

Real CSChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CSChar -> Rational Source #

Real CSUSeconds Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CSUSeconds -> Rational Source #

Real CShort Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CShort -> Rational Source #

Real CSigAtomic Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CSigAtomic -> Rational Source #

Real CSize Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CSize -> Rational Source #

Real CTime Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CTime -> Rational Source #

Real CUChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUChar -> Rational Source #

Real CUInt Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUInt -> Rational Source #

Real CUIntMax Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUIntMax -> Rational Source #

Real CUIntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUIntPtr -> Rational Source #

Real CULLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CULLong -> Rational Source #

Real CULong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CULong -> Rational Source #

Real CUSeconds Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUSeconds -> Rational Source #

Real CUShort Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUShort -> Rational Source #

Real CWchar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CWchar -> Rational Source #

Real IntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Methods

toRational :: IntPtr -> Rational Source #

Real WordPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Methods

toRational :: WordPtr -> Rational Source #

Real HalfWord Source # 
Instance details

Defined in GHC.Internal.Heap.InfoTable.Types

Methods

toRational :: HalfWord -> Rational Source #

Real Int16 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

toRational :: Int16 -> Rational Source #

Real Int32 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

toRational :: Int32 -> Rational Source #

Real Int64 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

toRational :: Int64 -> Rational Source #

Real Int8 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

toRational :: Int8 -> Rational Source #

Real ByteOffset Source # 
Instance details

Defined in GHC.Internal.Stack.Constants

Methods

toRational :: ByteOffset -> Rational Source #

Real WordOffset Source # 
Instance details

Defined in GHC.Internal.Stack.Constants

Methods

toRational :: WordOffset -> Rational Source #

Real ByteOffset Source # 
Instance details

Defined in GHC.Internal.Stack.ConstantsProf

Methods

toRational :: ByteOffset -> Rational Source #

Real WordOffset Source # 
Instance details

Defined in GHC.Internal.Stack.ConstantsProf

Methods

toRational :: WordOffset -> Rational Source #

Real CBlkCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CBlkCnt -> Rational Source #

Real CBlkSize Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CBlkSize -> Rational Source #

Real CCc Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CCc -> Rational Source #

Real CClockId Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CClockId -> Rational Source #

Real CDev Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CDev -> Rational Source #

Real CFsBlkCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CFsBlkCnt -> Rational Source #

Real CFsFilCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CFsFilCnt -> Rational Source #

Real CGid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CGid -> Rational Source #

Real CId Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CId -> Rational Source #

Real CIno Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CIno -> Rational Source #

Real CKey Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CKey -> Rational Source #

Real CMode Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CMode -> Rational Source #

Real CNfds Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CNfds -> Rational Source #

Real CNlink Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CNlink -> Rational Source #

Real COff Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: COff -> Rational Source #

Real CPid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CPid -> Rational Source #

Real CRLim Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CRLim -> Rational Source #

Real CSocklen Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CSocklen -> Rational Source #

Real CSpeed Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CSpeed -> Rational Source #

Real CSsize Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CSsize -> Rational Source #

Real CTcflag Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CTcflag -> Rational Source #

Real CUid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: CUid -> Rational Source #

Real Fd Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

toRational :: Fd -> Rational Source #

Real Word16 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

toRational :: Word16 -> Rational Source #

Real Word32 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

toRational :: Word32 -> Rational Source #

Real Word64 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

toRational :: Word64 -> Rational Source #

Real Word8 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

toRational :: Word8 -> Rational Source #

Real Integer Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Integer -> Rational Source #

Real Natural Source #

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Natural -> Rational Source #

Real Double Source #

Beware that toRational generates garbage for non-finite arguments:

>>> toRational (1/0)
179769313 (and 300 more digits...) % 1
>>> toRational (0/0)
269653970 (and 300 more digits...) % 1

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

toRational :: Double -> Rational Source #

Real Float Source #

Beware that toRational generates garbage for non-finite arguments:

>>> toRational (1/0 :: Float)
340282366920938463463374607431768211456 % 1
>>> toRational (0/0 :: Float)
510423550381407695195061911147652317184 % 1

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

toRational :: Float -> Rational Source #

Real Int Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Int -> Rational Source #

Real Word Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Word -> Rational Source #

Real a => Real (Identity a) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Methods

toRational :: Identity a -> Rational Source #

Real a => Real (Down a) Source #

Since: base-4.14.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

toRational :: Down a -> Rational Source #

Integral a => Real (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Ratio a -> Rational Source #

HasResolution a => Real (Fixed a) Source #

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

toRational :: Fixed a -> Rational Source #

Real a => Real (Const a b) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Methods

toRational :: Const a b -> Rational Source #

Real (f (g a)) => Real (Compose f g a) Source #

Since: base-4.19.0.0

Instance details

Defined in Data.Functor.Compose

Methods

toRational :: Compose f g a -> Rational Source #

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

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 Source #

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 Source #

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 Source #

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 Source #

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) Source #

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) Source #

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 Source #

Conversion to Integer.

Instances

Instances details
Integral CBool Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CBool -> CBool -> CBool Source #

rem :: CBool -> CBool -> CBool Source #

div :: CBool -> CBool -> CBool Source #

mod :: CBool -> CBool -> CBool Source #

quotRem :: CBool -> CBool -> (CBool, CBool) Source #

divMod :: CBool -> CBool -> (CBool, CBool) Source #

toInteger :: CBool -> Integer Source #

Integral CChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CChar -> CChar -> CChar Source #

rem :: CChar -> CChar -> CChar Source #

div :: CChar -> CChar -> CChar Source #

mod :: CChar -> CChar -> CChar Source #

quotRem :: CChar -> CChar -> (CChar, CChar) Source #

divMod :: CChar -> CChar -> (CChar, CChar) Source #

toInteger :: CChar -> Integer Source #

Integral CInt Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CInt -> CInt -> CInt Source #

rem :: CInt -> CInt -> CInt Source #

div :: CInt -> CInt -> CInt Source #

mod :: CInt -> CInt -> CInt Source #

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

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

toInteger :: CInt -> Integer Source #

Integral CIntMax Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CIntMax -> CIntMax -> CIntMax Source #

rem :: CIntMax -> CIntMax -> CIntMax Source #

div :: CIntMax -> CIntMax -> CIntMax Source #

mod :: CIntMax -> CIntMax -> CIntMax Source #

quotRem :: CIntMax -> CIntMax -> (CIntMax, CIntMax) Source #

divMod :: CIntMax -> CIntMax -> (CIntMax, CIntMax) Source #

toInteger :: CIntMax -> Integer Source #

Integral CIntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CIntPtr -> CIntPtr -> CIntPtr Source #

rem :: CIntPtr -> CIntPtr -> CIntPtr Source #

div :: CIntPtr -> CIntPtr -> CIntPtr Source #

mod :: CIntPtr -> CIntPtr -> CIntPtr Source #

quotRem :: CIntPtr -> CIntPtr -> (CIntPtr, CIntPtr) Source #

divMod :: CIntPtr -> CIntPtr -> (CIntPtr, CIntPtr) Source #

toInteger :: CIntPtr -> Integer Source #

Integral CLLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CLLong -> CLLong -> CLLong Source #

rem :: CLLong -> CLLong -> CLLong Source #

div :: CLLong -> CLLong -> CLLong Source #

mod :: CLLong -> CLLong -> CLLong Source #

quotRem :: CLLong -> CLLong -> (CLLong, CLLong) Source #

divMod :: CLLong -> CLLong -> (CLLong, CLLong) Source #

toInteger :: CLLong -> Integer Source #

Integral CLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CLong -> CLong -> CLong Source #

rem :: CLong -> CLong -> CLong Source #

div :: CLong -> CLong -> CLong Source #

mod :: CLong -> CLong -> CLong Source #

quotRem :: CLong -> CLong -> (CLong, CLong) Source #

divMod :: CLong -> CLong -> (CLong, CLong) Source #

toInteger :: CLong -> Integer Source #

Integral CPtrdiff Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CPtrdiff -> CPtrdiff -> CPtrdiff Source #

rem :: CPtrdiff -> CPtrdiff -> CPtrdiff Source #

div :: CPtrdiff -> CPtrdiff -> CPtrdiff Source #

mod :: CPtrdiff -> CPtrdiff -> CPtrdiff Source #

quotRem :: CPtrdiff -> CPtrdiff -> (CPtrdiff, CPtrdiff) Source #

divMod :: CPtrdiff -> CPtrdiff -> (CPtrdiff, CPtrdiff) Source #

toInteger :: CPtrdiff -> Integer Source #

Integral CSChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CSChar -> CSChar -> CSChar Source #

rem :: CSChar -> CSChar -> CSChar Source #

div :: CSChar -> CSChar -> CSChar Source #

mod :: CSChar -> CSChar -> CSChar Source #

quotRem :: CSChar -> CSChar -> (CSChar, CSChar) Source #

divMod :: CSChar -> CSChar -> (CSChar, CSChar) Source #

toInteger :: CSChar -> Integer Source #

Integral CShort Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CShort -> CShort -> CShort Source #

rem :: CShort -> CShort -> CShort Source #

div :: CShort -> CShort -> CShort Source #

mod :: CShort -> CShort -> CShort Source #

quotRem :: CShort -> CShort -> (CShort, CShort) Source #

divMod :: CShort -> CShort -> (CShort, CShort) Source #

toInteger :: CShort -> Integer Source #

Integral CSigAtomic Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSize Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CSize -> CSize -> CSize Source #

rem :: CSize -> CSize -> CSize Source #

div :: CSize -> CSize -> CSize Source #

mod :: CSize -> CSize -> CSize Source #

quotRem :: CSize -> CSize -> (CSize, CSize) Source #

divMod :: CSize -> CSize -> (CSize, CSize) Source #

toInteger :: CSize -> Integer Source #

Integral CUChar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CUChar -> CUChar -> CUChar Source #

rem :: CUChar -> CUChar -> CUChar Source #

div :: CUChar -> CUChar -> CUChar Source #

mod :: CUChar -> CUChar -> CUChar Source #

quotRem :: CUChar -> CUChar -> (CUChar, CUChar) Source #

divMod :: CUChar -> CUChar -> (CUChar, CUChar) Source #

toInteger :: CUChar -> Integer Source #

Integral CUInt Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CUInt -> CUInt -> CUInt Source #

rem :: CUInt -> CUInt -> CUInt Source #

div :: CUInt -> CUInt -> CUInt Source #

mod :: CUInt -> CUInt -> CUInt Source #

quotRem :: CUInt -> CUInt -> (CUInt, CUInt) Source #

divMod :: CUInt -> CUInt -> (CUInt, CUInt) Source #

toInteger :: CUInt -> Integer Source #

Integral CUIntMax Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CUIntMax -> CUIntMax -> CUIntMax Source #

rem :: CUIntMax -> CUIntMax -> CUIntMax Source #

div :: CUIntMax -> CUIntMax -> CUIntMax Source #

mod :: CUIntMax -> CUIntMax -> CUIntMax Source #

quotRem :: CUIntMax -> CUIntMax -> (CUIntMax, CUIntMax) Source #

divMod :: CUIntMax -> CUIntMax -> (CUIntMax, CUIntMax) Source #

toInteger :: CUIntMax -> Integer Source #

Integral CUIntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CUIntPtr -> CUIntPtr -> CUIntPtr Source #

rem :: CUIntPtr -> CUIntPtr -> CUIntPtr Source #

div :: CUIntPtr -> CUIntPtr -> CUIntPtr Source #

mod :: CUIntPtr -> CUIntPtr -> CUIntPtr Source #

quotRem :: CUIntPtr -> CUIntPtr -> (CUIntPtr, CUIntPtr) Source #

divMod :: CUIntPtr -> CUIntPtr -> (CUIntPtr, CUIntPtr) Source #

toInteger :: CUIntPtr -> Integer Source #

Integral CULLong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CULLong -> CULLong -> CULLong Source #

rem :: CULLong -> CULLong -> CULLong Source #

div :: CULLong -> CULLong -> CULLong Source #

mod :: CULLong -> CULLong -> CULLong Source #

quotRem :: CULLong -> CULLong -> (CULLong, CULLong) Source #

divMod :: CULLong -> CULLong -> (CULLong, CULLong) Source #

toInteger :: CULLong -> Integer Source #

Integral CULong Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CULong -> CULong -> CULong Source #

rem :: CULong -> CULong -> CULong Source #

div :: CULong -> CULong -> CULong Source #

mod :: CULong -> CULong -> CULong Source #

quotRem :: CULong -> CULong -> (CULong, CULong) Source #

divMod :: CULong -> CULong -> (CULong, CULong) Source #

toInteger :: CULong -> Integer Source #

Integral CUShort Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CUShort -> CUShort -> CUShort Source #

rem :: CUShort -> CUShort -> CUShort Source #

div :: CUShort -> CUShort -> CUShort Source #

mod :: CUShort -> CUShort -> CUShort Source #

quotRem :: CUShort -> CUShort -> (CUShort, CUShort) Source #

divMod :: CUShort -> CUShort -> (CUShort, CUShort) Source #

toInteger :: CUShort -> Integer Source #

Integral CWchar Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CWchar -> CWchar -> CWchar Source #

rem :: CWchar -> CWchar -> CWchar Source #

div :: CWchar -> CWchar -> CWchar Source #

mod :: CWchar -> CWchar -> CWchar Source #

quotRem :: CWchar -> CWchar -> (CWchar, CWchar) Source #

divMod :: CWchar -> CWchar -> (CWchar, CWchar) Source #

toInteger :: CWchar -> Integer Source #

Integral IntPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Methods

quot :: IntPtr -> IntPtr -> IntPtr Source #

rem :: IntPtr -> IntPtr -> IntPtr Source #

div :: IntPtr -> IntPtr -> IntPtr Source #

mod :: IntPtr -> IntPtr -> IntPtr Source #

quotRem :: IntPtr -> IntPtr -> (IntPtr, IntPtr) Source #

divMod :: IntPtr -> IntPtr -> (IntPtr, IntPtr) Source #

toInteger :: IntPtr -> Integer Source #

Integral WordPtr Source # 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Methods

quot :: WordPtr -> WordPtr -> WordPtr Source #

rem :: WordPtr -> WordPtr -> WordPtr Source #

div :: WordPtr -> WordPtr -> WordPtr Source #

mod :: WordPtr -> WordPtr -> WordPtr Source #

quotRem :: WordPtr -> WordPtr -> (WordPtr, WordPtr) Source #

divMod :: WordPtr -> WordPtr -> (WordPtr, WordPtr) Source #

toInteger :: WordPtr -> Integer Source #

Integral HalfWord Source # 
Instance details

Defined in GHC.Internal.Heap.InfoTable.Types

Methods

quot :: HalfWord -> HalfWord -> HalfWord Source #

rem :: HalfWord -> HalfWord -> HalfWord Source #

div :: HalfWord -> HalfWord -> HalfWord Source #

mod :: HalfWord -> HalfWord -> HalfWord Source #

quotRem :: HalfWord -> HalfWord -> (HalfWord, HalfWord) Source #

divMod :: HalfWord -> HalfWord -> (HalfWord, HalfWord) Source #

toInteger :: HalfWord -> Integer Source #

Integral Int16 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

quot :: Int16 -> Int16 -> Int16 Source #

rem :: Int16 -> Int16 -> Int16 Source #

div :: Int16 -> Int16 -> Int16 Source #

mod :: Int16 -> Int16 -> Int16 Source #

quotRem :: Int16 -> Int16 -> (Int16, Int16) Source #

divMod :: Int16 -> Int16 -> (Int16, Int16) Source #

toInteger :: Int16 -> Integer Source #

Integral Int32 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

quot :: Int32 -> Int32 -> Int32 Source #

rem :: Int32 -> Int32 -> Int32 Source #

div :: Int32 -> Int32 -> Int32 Source #

mod :: Int32 -> Int32 -> Int32 Source #

quotRem :: Int32 -> Int32 -> (Int32, Int32) Source #

divMod :: Int32 -> Int32 -> (Int32, Int32) Source #

toInteger :: Int32 -> Integer Source #

Integral Int64 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

quot :: Int64 -> Int64 -> Int64 Source #

rem :: Int64 -> Int64 -> Int64 Source #

div :: Int64 -> Int64 -> Int64 Source #

mod :: Int64 -> Int64 -> Int64 Source #

quotRem :: Int64 -> Int64 -> (Int64, Int64) Source #

divMod :: Int64 -> Int64 -> (Int64, Int64) Source #

toInteger :: Int64 -> Integer Source #

Integral Int8 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Methods

quot :: Int8 -> Int8 -> Int8 Source #

rem :: Int8 -> Int8 -> Int8 Source #

div :: Int8 -> Int8 -> Int8 Source #

mod :: Int8 -> Int8 -> Int8 Source #

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

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

toInteger :: Int8 -> Integer Source #

Integral ByteOffset Source # 
Instance details

Defined in GHC.Internal.Stack.Constants

Methods

quot :: ByteOffset -> ByteOffset -> ByteOffset Source #

rem :: ByteOffset -> ByteOffset -> ByteOffset Source #

div :: ByteOffset -> ByteOffset -> ByteOffset Source #

mod :: ByteOffset -> ByteOffset -> ByteOffset Source #

quotRem :: ByteOffset -> ByteOffset -> (ByteOffset, ByteOffset) Source #

divMod :: ByteOffset -> ByteOffset -> (ByteOffset, ByteOffset) Source #

toInteger :: ByteOffset -> Integer Source #

Integral WordOffset Source # 
Instance details

Defined in GHC.Internal.Stack.Constants

Methods

quot :: WordOffset -> WordOffset -> WordOffset Source #

rem :: WordOffset -> WordOffset -> WordOffset Source #

div :: WordOffset -> WordOffset -> WordOffset Source #

mod :: WordOffset -> WordOffset -> WordOffset Source #

quotRem :: WordOffset -> WordOffset -> (WordOffset, WordOffset) Source #

divMod :: WordOffset -> WordOffset -> (WordOffset, WordOffset) Source #

toInteger :: WordOffset -> Integer Source #

Integral ByteOffset Source # 
Instance details

Defined in GHC.Internal.Stack.ConstantsProf

Methods

quot :: ByteOffset -> ByteOffset -> ByteOffset Source #

rem :: ByteOffset -> ByteOffset -> ByteOffset Source #

div :: ByteOffset -> ByteOffset -> ByteOffset Source #

mod :: ByteOffset -> ByteOffset -> ByteOffset Source #

quotRem :: ByteOffset -> ByteOffset -> (ByteOffset, ByteOffset) Source #

divMod :: ByteOffset -> ByteOffset -> (ByteOffset, ByteOffset) Source #

toInteger :: ByteOffset -> Integer Source #

Integral WordOffset Source # 
Instance details

Defined in GHC.Internal.Stack.ConstantsProf

Methods

quot :: WordOffset -> WordOffset -> WordOffset Source #

rem :: WordOffset -> WordOffset -> WordOffset Source #

div :: WordOffset -> WordOffset -> WordOffset Source #

mod :: WordOffset -> WordOffset -> WordOffset Source #

quotRem :: WordOffset -> WordOffset -> (WordOffset, WordOffset) Source #

divMod :: WordOffset -> WordOffset -> (WordOffset, WordOffset) Source #

toInteger :: WordOffset -> Integer Source #

Integral CBlkCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CBlkCnt -> CBlkCnt -> CBlkCnt Source #

rem :: CBlkCnt -> CBlkCnt -> CBlkCnt Source #

div :: CBlkCnt -> CBlkCnt -> CBlkCnt Source #

mod :: CBlkCnt -> CBlkCnt -> CBlkCnt Source #

quotRem :: CBlkCnt -> CBlkCnt -> (CBlkCnt, CBlkCnt) Source #

divMod :: CBlkCnt -> CBlkCnt -> (CBlkCnt, CBlkCnt) Source #

toInteger :: CBlkCnt -> Integer Source #

Integral CBlkSize Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CBlkSize -> CBlkSize -> CBlkSize Source #

rem :: CBlkSize -> CBlkSize -> CBlkSize Source #

div :: CBlkSize -> CBlkSize -> CBlkSize Source #

mod :: CBlkSize -> CBlkSize -> CBlkSize Source #

quotRem :: CBlkSize -> CBlkSize -> (CBlkSize, CBlkSize) Source #

divMod :: CBlkSize -> CBlkSize -> (CBlkSize, CBlkSize) Source #

toInteger :: CBlkSize -> Integer Source #

Integral CClockId Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CClockId -> CClockId -> CClockId Source #

rem :: CClockId -> CClockId -> CClockId Source #

div :: CClockId -> CClockId -> CClockId Source #

mod :: CClockId -> CClockId -> CClockId Source #

quotRem :: CClockId -> CClockId -> (CClockId, CClockId) Source #

divMod :: CClockId -> CClockId -> (CClockId, CClockId) Source #

toInteger :: CClockId -> Integer Source #

Integral CDev Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CDev -> CDev -> CDev Source #

rem :: CDev -> CDev -> CDev Source #

div :: CDev -> CDev -> CDev Source #

mod :: CDev -> CDev -> CDev Source #

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

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

toInteger :: CDev -> Integer Source #

Integral CFsBlkCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Source #

rem :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Source #

div :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Source #

mod :: CFsBlkCnt -> CFsBlkCnt -> CFsBlkCnt Source #

quotRem :: CFsBlkCnt -> CFsBlkCnt -> (CFsBlkCnt, CFsBlkCnt) Source #

divMod :: CFsBlkCnt -> CFsBlkCnt -> (CFsBlkCnt, CFsBlkCnt) Source #

toInteger :: CFsBlkCnt -> Integer Source #

Integral CFsFilCnt Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Source #

rem :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Source #

div :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Source #

mod :: CFsFilCnt -> CFsFilCnt -> CFsFilCnt Source #

quotRem :: CFsFilCnt -> CFsFilCnt -> (CFsFilCnt, CFsFilCnt) Source #

divMod :: CFsFilCnt -> CFsFilCnt -> (CFsFilCnt, CFsFilCnt) Source #

toInteger :: CFsFilCnt -> Integer Source #

Integral CGid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CGid -> CGid -> CGid Source #

rem :: CGid -> CGid -> CGid Source #

div :: CGid -> CGid -> CGid Source #

mod :: CGid -> CGid -> CGid Source #

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

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

toInteger :: CGid -> Integer Source #

Integral CId Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CId -> CId -> CId Source #

rem :: CId -> CId -> CId Source #

div :: CId -> CId -> CId Source #

mod :: CId -> CId -> CId Source #

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

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

toInteger :: CId -> Integer Source #

Integral CIno Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CIno -> CIno -> CIno Source #

rem :: CIno -> CIno -> CIno Source #

div :: CIno -> CIno -> CIno Source #

mod :: CIno -> CIno -> CIno Source #

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

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

toInteger :: CIno -> Integer Source #

Integral CKey Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CKey -> CKey -> CKey Source #

rem :: CKey -> CKey -> CKey Source #

div :: CKey -> CKey -> CKey Source #

mod :: CKey -> CKey -> CKey Source #

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

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

toInteger :: CKey -> Integer Source #

Integral CMode Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CMode -> CMode -> CMode Source #

rem :: CMode -> CMode -> CMode Source #

div :: CMode -> CMode -> CMode Source #

mod :: CMode -> CMode -> CMode Source #

quotRem :: CMode -> CMode -> (CMode, CMode) Source #

divMod :: CMode -> CMode -> (CMode, CMode) Source #

toInteger :: CMode -> Integer Source #

Integral CNfds Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CNfds -> CNfds -> CNfds Source #

rem :: CNfds -> CNfds -> CNfds Source #

div :: CNfds -> CNfds -> CNfds Source #

mod :: CNfds -> CNfds -> CNfds Source #

quotRem :: CNfds -> CNfds -> (CNfds, CNfds) Source #

divMod :: CNfds -> CNfds -> (CNfds, CNfds) Source #

toInteger :: CNfds -> Integer Source #

Integral CNlink Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CNlink -> CNlink -> CNlink Source #

rem :: CNlink -> CNlink -> CNlink Source #

div :: CNlink -> CNlink -> CNlink Source #

mod :: CNlink -> CNlink -> CNlink Source #

quotRem :: CNlink -> CNlink -> (CNlink, CNlink) Source #

divMod :: CNlink -> CNlink -> (CNlink, CNlink) Source #

toInteger :: CNlink -> Integer Source #

Integral COff Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: COff -> COff -> COff Source #

rem :: COff -> COff -> COff Source #

div :: COff -> COff -> COff Source #

mod :: COff -> COff -> COff Source #

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

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

toInteger :: COff -> Integer Source #

Integral CPid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CPid -> CPid -> CPid Source #

rem :: CPid -> CPid -> CPid Source #

div :: CPid -> CPid -> CPid Source #

mod :: CPid -> CPid -> CPid Source #

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

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

toInteger :: CPid -> Integer Source #

Integral CRLim Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CRLim -> CRLim -> CRLim Source #

rem :: CRLim -> CRLim -> CRLim Source #

div :: CRLim -> CRLim -> CRLim Source #

mod :: CRLim -> CRLim -> CRLim Source #

quotRem :: CRLim -> CRLim -> (CRLim, CRLim) Source #

divMod :: CRLim -> CRLim -> (CRLim, CRLim) Source #

toInteger :: CRLim -> Integer Source #

Integral CSocklen Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CSocklen -> CSocklen -> CSocklen Source #

rem :: CSocklen -> CSocklen -> CSocklen Source #

div :: CSocklen -> CSocklen -> CSocklen Source #

mod :: CSocklen -> CSocklen -> CSocklen Source #

quotRem :: CSocklen -> CSocklen -> (CSocklen, CSocklen) Source #

divMod :: CSocklen -> CSocklen -> (CSocklen, CSocklen) Source #

toInteger :: CSocklen -> Integer Source #

Integral CSsize Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CSsize -> CSsize -> CSsize Source #

rem :: CSsize -> CSsize -> CSsize Source #

div :: CSsize -> CSsize -> CSsize Source #

mod :: CSsize -> CSsize -> CSsize Source #

quotRem :: CSsize -> CSsize -> (CSsize, CSsize) Source #

divMod :: CSsize -> CSsize -> (CSsize, CSsize) Source #

toInteger :: CSsize -> Integer Source #

Integral CTcflag Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CTcflag -> CTcflag -> CTcflag Source #

rem :: CTcflag -> CTcflag -> CTcflag Source #

div :: CTcflag -> CTcflag -> CTcflag Source #

mod :: CTcflag -> CTcflag -> CTcflag Source #

quotRem :: CTcflag -> CTcflag -> (CTcflag, CTcflag) Source #

divMod :: CTcflag -> CTcflag -> (CTcflag, CTcflag) Source #

toInteger :: CTcflag -> Integer Source #

Integral CUid Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: CUid -> CUid -> CUid Source #

rem :: CUid -> CUid -> CUid Source #

div :: CUid -> CUid -> CUid Source #

mod :: CUid -> CUid -> CUid Source #

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

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

toInteger :: CUid -> Integer Source #

Integral Fd Source # 
Instance details

Defined in GHC.Internal.System.Posix.Types

Methods

quot :: Fd -> Fd -> Fd Source #

rem :: Fd -> Fd -> Fd Source #

div :: Fd -> Fd -> Fd Source #

mod :: Fd -> Fd -> Fd Source #

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

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

toInteger :: Fd -> Integer Source #

Integral Word16 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

quot :: Word16 -> Word16 -> Word16 Source #

rem :: Word16 -> Word16 -> Word16 Source #

div :: Word16 -> Word16 -> Word16 Source #

mod :: Word16 -> Word16 -> Word16 Source #

quotRem :: Word16 -> Word16 -> (Word16, Word16) Source #

divMod :: Word16 -> Word16 -> (Word16, Word16) Source #

toInteger :: Word16 -> Integer Source #

Integral Word32 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

quot :: Word32 -> Word32 -> Word32 Source #

rem :: Word32 -> Word32 -> Word32 Source #

div :: Word32 -> Word32 -> Word32 Source #

mod :: Word32 -> Word32 -> Word32 Source #

quotRem :: Word32 -> Word32 -> (Word32, Word32) Source #

divMod :: Word32 -> Word32 -> (Word32, Word32) Source #

toInteger :: Word32 -> Integer Source #

Integral Word64 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

quot :: Word64 -> Word64 -> Word64 Source #

rem :: Word64 -> Word64 -> Word64 Source #

div :: Word64 -> Word64 -> Word64 Source #

mod :: Word64 -> Word64 -> Word64 Source #

quotRem :: Word64 -> Word64 -> (Word64, Word64) Source #

divMod :: Word64 -> Word64 -> (Word64, Word64) Source #

toInteger :: Word64 -> Integer Source #

Integral Word8 Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Methods

quot :: Word8 -> Word8 -> Word8 Source #

rem :: Word8 -> Word8 -> Word8 Source #

div :: Word8 -> Word8 -> Word8 Source #

mod :: Word8 -> Word8 -> Word8 Source #

quotRem :: Word8 -> Word8 -> (Word8, Word8) Source #

divMod :: Word8 -> Word8 -> (Word8, Word8) Source #

toInteger :: Word8 -> Integer Source #

Integral Integer Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Integer -> Integer -> Integer Source #

rem :: Integer -> Integer -> Integer Source #

div :: Integer -> Integer -> Integer Source #

mod :: Integer -> Integer -> Integer Source #

quotRem :: Integer -> Integer -> (Integer, Integer) Source #

divMod :: Integer -> Integer -> (Integer, Integer) Source #

toInteger :: Integer -> Integer Source #

Integral Natural Source #

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Natural -> Natural -> Natural Source #

rem :: Natural -> Natural -> Natural Source #

div :: Natural -> Natural -> Natural Source #

mod :: Natural -> Natural -> Natural Source #

quotRem :: Natural -> Natural -> (Natural, Natural) Source #

divMod :: Natural -> Natural -> (Natural, Natural) Source #

toInteger :: Natural -> Integer Source #

Integral Int Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Int -> Int -> Int Source #

rem :: Int -> Int -> Int Source #

div :: Int -> Int -> Int Source #

mod :: Int -> Int -> Int Source #

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

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

toInteger :: Int -> Integer Source #

Integral Word Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Real

Methods

quot :: Word -> Word -> Word Source #

rem :: Word -> Word -> Word Source #

div :: Word -> Word -> Word Source #

mod :: Word -> Word -> Word Source #

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

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

toInteger :: Word -> Integer Source #

Integral a => Integral (Identity a) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Methods

quot :: Identity a -> Identity a -> Identity a Source #

rem :: Identity a -> Identity a -> Identity a Source #

div :: Identity a -> Identity a -> Identity a Source #

mod :: Identity a -> Identity a -> Identity a Source #

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

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

toInteger :: Identity a -> Integer Source #

Integral a => Integral (Const a b) Source #

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 Source #

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

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

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

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

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

toInteger :: Const a b -> Integer Source #

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

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 Source #

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

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

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

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

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

toInteger :: Compose f g a -> Integer Source #

class Num a => Fractional a where Source #

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 Source #

Fractional division.

recip :: a -> a Source #

Reciprocal fraction.

fromRational :: Rational -> a Source #

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 Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(/) :: CDouble -> CDouble -> CDouble Source #

recip :: CDouble -> CDouble Source #

fromRational :: Rational -> CDouble Source #

Fractional CFloat Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(/) :: CFloat -> CFloat -> CFloat Source #

recip :: CFloat -> CFloat Source #

fromRational :: Rational -> CFloat Source #

Fractional Double Source #

This instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.

>>> 0 == (-0 :: Double)
True
>>> recip 0 == recip (-0 :: Double)
False
>>> map (/ 0) [-1, 0, 1]
[-Infinity,NaN,Infinity]
>>> map (* 0) $ map (/ 0) [-1, 0, 1]
[NaN,NaN,NaN]

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

(/) :: Double -> Double -> Double Source #

recip :: Double -> Double Source #

fromRational :: Rational -> Double Source #

Fractional Float Source #

This instance implements IEEE 754 standard with all its usual pitfalls about NaN, infinities and negative zero.

>>> 0 == (-0 :: Float)
True
>>> recip 0 == recip (-0 :: Float)
False
>>> map (/ 0) [-1, 0, 1 :: Float]
[-Infinity,NaN,Infinity]
>>> map (* 0) $ map (/ 0) [-1, 0, 1 :: Float]
[NaN,NaN,NaN]

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

(/) :: Float -> Float -> Float Source #

recip :: Float -> Float Source #

fromRational :: Rational -> Float Source #

RealFloat a => Fractional (Complex a) Source #

Since: base-2.1

Instance details

Defined in Data.Complex

Methods

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

recip :: Complex a -> Complex a Source #

fromRational :: Rational -> Complex a Source #

Fractional a => Fractional (Identity a) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Methods

(/) :: Identity a -> Identity a -> Identity a Source #

recip :: Identity a -> Identity a Source #

fromRational :: Rational -> Identity a Source #

Fractional a => Fractional (Down a) Source #

Since: base-4.14.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

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

recip :: Down a -> Down a Source #

fromRational :: Rational -> Down a Source #

Integral a => Fractional (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

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

recip :: Ratio a -> Ratio a Source #

fromRational :: Rational -> Ratio a Source #

HasResolution a => Fractional (Fixed a) Source #

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

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

recip :: Fixed a -> Fixed a Source #

fromRational :: Rational -> Fixed a Source #

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

Defined in Data.Functor.Contravariant

Methods

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

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

fromRational :: Rational -> Op a b Source #

Fractional a => Fractional (Const a b) Source #

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 Source #

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

fromRational :: Rational -> Const a b Source #

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

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 Source #

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

fromRational :: Rational -> Compose f g a Source #

class (Real a, Fractional a) => RealFrac a where Source #

Extracting components of fractions.

Minimal complete definition

properFraction

Methods

properFraction :: Integral b => a -> (b, a) Source #

The function properFraction takes a real fractional number x and returns a pair (n,f) such that x = n+f, and:

  • n is an integral number with the same sign as x; and
  • f is a fraction with the same type and sign as x, and with absolute value less than 1.

The default definitions of the ceiling, floor, truncate and round functions are in terms of properFraction.

truncate :: Integral b => a -> b Source #

truncate x returns the integer nearest x between zero and x

round :: Integral b => a -> b Source #

round x returns the nearest integer to x; the even integer if x is equidistant between two integers

ceiling :: Integral b => a -> b Source #

ceiling x returns the least integer not less than x

floor :: Integral b => a -> b Source #

floor x returns the greatest integer not greater than x

Instances

Instances details
RealFrac CDouble Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

properFraction :: Integral b => CDouble -> (b, CDouble) Source #

truncate :: Integral b => CDouble -> b Source #

round :: Integral b => CDouble -> b Source #

ceiling :: Integral b => CDouble -> b Source #

floor :: Integral b => CDouble -> b Source #

RealFrac CFloat Source # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

properFraction :: Integral b => CFloat -> (b, CFloat) Source #

truncate :: Integral b => CFloat -> b Source #

round :: Integral b => CFloat -> b Source #

ceiling :: Integral b => CFloat -> b Source #

floor :: Integral b => CFloat -> b Source #

RealFrac Double Source #

Beware that results for non-finite arguments are garbage:

>>> [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0] ] :: [Int]
[0,0,0,0,0,0,0,0,0]
>>> map properFraction [-1/0, 0/0, 1/0] :: [(Int, Double)]
[(0,0.0),(0,0.0),(0,0.0)]

and get even more non-sensical if you ask for Integer instead of Int.

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

properFraction :: Integral b => Double -> (b, Double) Source #

truncate :: Integral b => Double -> b Source #

round :: Integral b => Double -> b Source #

ceiling :: Integral b => Double -> b Source #

floor :: Integral b => Double -> b Source #

RealFrac Float Source #

Beware that results for non-finite arguments are garbage:

>>> [ f x | f <- [round, floor, ceiling], x <- [-1/0, 0/0, 1/0 :: Float] ] :: [Int]
[0,0,0,0,0,0,0,0,0]
>>> map properFraction [-1/0, 0/0, 1/0] :: [(Int, Float)]
[(0,0.0),(0,0.0),(0,0.0)]

and get even more non-sensical if you ask for Integer instead of Int.

Since: base-2.1

Instance details

Defined in GHC.Internal.Float

Methods

properFraction :: Integral b => Float -> (b, Float) Source #

truncate :: Integral b => Float -> b Source #

round :: Integral b => Float -> b Source #

ceiling :: Integral b => Float -> b Source #

floor :: Integral b => Float -> b Source #

RealFrac a => RealFrac (Identity a) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Identity

Methods

properFraction :: Integral b => Identity a -> (b, Identity a) Source #

truncate :: Integral b => Identity a -> b Source #

round :: Integral b => Identity a -> b Source #

ceiling :: Integral b => Identity a -> b Source #

floor :: Integral b => Identity a -> b Source #

RealFrac a => RealFrac (Down a) Source #

Since: base-4.14.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

properFraction :: Integral b => Down a -> (b, Down a) Source #

truncate :: Integral b => Down a -> b Source #

round :: Integral b => Down a -> b Source #

ceiling :: Integral b => Down a -> b Source #

floor :: Integral b => Down a -> b Source #

Integral a => RealFrac (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

properFraction :: Integral b => Ratio a -> (b, Ratio a) Source #

truncate :: Integral b => Ratio a -> b Source #

round :: Integral b => Ratio a -> b Source #

ceiling :: Integral b => Ratio a -> b Source #

floor :: Integral b => Ratio a -> b Source #

HasResolution a => RealFrac (Fixed a) Source #

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

properFraction :: Integral b => Fixed a -> (b, Fixed a) Source #

truncate :: Integral b => Fixed a -> b Source #

round :: Integral b => Fixed a -> b Source #

ceiling :: Integral b => Fixed a -> b Source #

floor :: Integral b => Fixed a -> b Source #

RealFrac a => RealFrac (Const a b) Source #

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Data.Functor.Const

Methods

properFraction :: Integral b0 => Const a b -> (b0, Const a b) Source #

truncate :: Integral b0 => Const a b -> b0 Source #

round :: Integral b0 => Const a b -> b0 Source #

ceiling :: Integral b0 => Const a b -> b0 Source #

floor :: Integral b0 => Const a b -> b0 Source #

RealFrac (f (g a)) => RealFrac (Compose f g a) Source #

Since: base-4.20.0.0

Instance details

Defined in Data.Functor.Compose

Methods

properFraction :: Integral b => Compose f g a -> (b, Compose f g a) Source #

truncate :: Integral b => Compose f g a -> b Source #

round :: Integral b => Compose f g a -> b Source #

ceiling :: Integral b => Compose f g a -> b Source #

floor :: Integral b => Compose f g a -> b Source #

Conversion

fromIntegral :: (Integral a, Num b) => a -> b Source #

General coercion from Integral types.

WARNING: This function performs silent truncation if the result type is not at least as big as the argument's type.

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

General coercion to Fractional types.

WARNING: This function goes through the Rational type, which does not have values for NaN for example. This means it does not round-trip.

For Double it also behaves differently with or without -O0:

Prelude> realToFrac nan -- With -O0
-Infinity
Prelude> realToFrac nan
NaN

Formatting

showSigned Source #

Arguments

:: Real a 
=> (a -> ShowS)

a function that can show unsigned values

-> Int

the precedence of the enclosing context

-> a

the value to show

-> ShowS 

Converts a possibly-negative Real value to a string.

Predicates

even :: Integral a => a -> Bool Source #

odd :: Integral a => a -> Bool Source #

Arithmetic

(^) :: (Num a, Integral b) => a -> b -> a infixr 8 Source #

raise a number to a non-negative integral power

(^^) :: (Fractional a, Integral b) => a -> b -> a infixr 8 Source #

raise a number to an integral power

gcd :: Integral a => a -> a -> a Source #

gcd x y is the non-negative factor of both x and y of which every common factor of x and y is also a factor; for example gcd 4 2 = 2, gcd (-4) 6 = 2, gcd 0 4 = 4. gcd 0 0 = 0. (That is, the common divisor that is "greatest" in the divisibility preordering.)

Note: Since for signed fixed-width integer types, abs minBound < 0, the result may be negative if one of the arguments is minBound (and necessarily is if the other is 0 or minBound) for such types.

lcm :: Integral a => a -> a -> a Source #

lcm x y is the smallest positive integer that both x and y divide.

Ratio

data Ratio a Source #

Rational numbers, with numerator and denominator of some Integral type.

Note that Ratio's instances inherit the deficiencies from the type parameter's. For example, Ratio Natural's Num instance has similar problems to Natural's.

Constructors

!a :% !a 

Instances

Instances details
Integral a => Lift (Ratio a :: Type) Source # 
Instance details

Defined in GHC.Internal.TH.Lift

Methods

lift :: Quote m => Ratio a -> m Exp Source #

liftTyped :: forall (m :: Type -> Type). Quote m => Ratio a -> Code m (Ratio a) Source #

Eq a => Eq (Ratio a) Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Real

Methods

(==) :: Ratio a -> Ratio a -> Bool Source #

(/=) :: Ratio a -> Ratio a -> Bool Source #

Integral a => Ord (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

compare :: Ratio a -> Ratio a -> Ordering Source #

(<) :: Ratio a -> Ratio a -> Bool Source #

(<=) :: Ratio a -> Ratio a -> Bool Source #

(>) :: Ratio a -> Ratio a -> Bool Source #

(>=) :: Ratio a -> Ratio a -> Bool Source #

max :: Ratio a -> Ratio a -> Ratio a Source #

min :: Ratio a -> Ratio a -> Ratio a Source #

(Data a, Integral a) => Data (Ratio a) Source #

Since: base-4.0.0.0

Instance details

Defined in GHC.Internal.Data.Data

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ratio a -> c (Ratio a) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Ratio a) Source #

toConstr :: Ratio a -> Constr Source #

dataTypeOf :: Ratio a -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Ratio a)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Ratio a)) Source #

gmapT :: (forall b. Data b => b -> b) -> Ratio a -> Ratio a Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ratio a -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Ratio a -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Ratio a -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ratio a -> m (Ratio a) Source #

Integral a => Enum (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

succ :: Ratio a -> Ratio a Source #

pred :: Ratio a -> Ratio a Source #

toEnum :: Int -> Ratio a Source #

fromEnum :: Ratio a -> Int Source #

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

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

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

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

(Storable a, Integral a) => Storable (Ratio a) Source #

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Foreign.Storable

Methods

sizeOf :: Ratio a -> Int Source #

alignment :: Ratio a -> Int Source #

peekElemOff :: Ptr (Ratio a) -> Int -> IO (Ratio a) Source #

pokeElemOff :: Ptr (Ratio a) -> Int -> Ratio a -> IO () Source #

peekByteOff :: Ptr b -> Int -> IO (Ratio a) Source #

pokeByteOff :: Ptr b -> Int -> Ratio a -> IO () Source #

peek :: Ptr (Ratio a) -> IO (Ratio a) Source #

poke :: Ptr (Ratio a) -> Ratio a -> IO () Source #

Integral a => Num (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

(+) :: Ratio a -> Ratio a -> Ratio a Source #

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

(*) :: Ratio a -> Ratio a -> Ratio a Source #

negate :: Ratio a -> Ratio a Source #

abs :: Ratio a -> Ratio a Source #

signum :: Ratio a -> Ratio a Source #

fromInteger :: Integer -> Ratio a Source #

(Integral a, Read a) => Read (Ratio a) Source #

Since: base-2.1

Instance details

Defined in GHC.Internal.Read

Methods

readsPrec :: Int -> ReadS (Ratio a) Source #

readList :: ReadS [Ratio a] Source #

readPrec :: ReadPrec (Ratio a) Source #

readListPrec :: ReadPrec [Ratio a] Source #

Integral a => Fractional (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

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

recip :: Ratio a -> Ratio a Source #

fromRational :: Rational -> Ratio a Source #

Integral a => Real (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

toRational :: Ratio a -> Rational Source #

Integral a => RealFrac (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

properFraction :: Integral b => Ratio a -> (b, Ratio a) Source #

truncate :: Integral b => Ratio a -> b Source #

round :: Integral b => Ratio a -> b Source #

ceiling :: Integral b => Ratio a -> b Source #

floor :: Integral b => Ratio a -> b Source #

Show a => Show (Ratio a) Source #

Since: base-2.0.1

Instance details

Defined in GHC.Internal.Real

Methods

showsPrec :: Int -> Ratio a -> ShowS Source #

show :: Ratio a -> String Source #

showList :: [Ratio a] -> ShowS Source #

type Rational = Ratio Integer Source #

Arbitrary-precision rational numbers, represented as a ratio of two Integer values. A rational number may be constructed using the % operator.

infinity :: Rational Source #

Enum helpers

numericEnumFrom :: Fractional a => a -> [a] Source #

numericEnumFromThen :: Fractional a => a -> a -> [a] Source #

numericEnumFromTo :: (Ord a, Fractional a) => a -> a -> [a] Source #

numericEnumFromThenTo :: (Ord a, Fractional a) => a -> a -> a -> [a] Source #

integralEnumFrom :: (Integral a, Bounded a) => a -> [a] Source #

integralEnumFromThen :: (Integral a, Bounded a) => a -> a -> [a] Source #

integralEnumFromTo :: Integral a => a -> a -> [a] Source #

integralEnumFromThenTo :: Integral a => a -> a -> a -> [a] Source #

Construction

(%) :: Integral a => a -> a -> Ratio a infixl 7 Source #

Forms the ratio of two integral numbers.

Projection

numerator :: Ratio a -> a Source #

Extract the numerator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

denominator :: Ratio a -> a Source #

Extract the denominator of the ratio in reduced form: the numerator and denominator have no common factor and the denominator is positive.

Operations

reduce :: Integral a => a -> a -> Ratio a Source #

reduce is a subsidiary function used only in this module. It normalises a ratio by dividing both numerator and denominator by their greatest common divisor.

Internal

ratioPrec :: Int Source #

ratioPrec1 :: Int Source #

divZeroError :: a Source #

overflowError :: a Source #

underflowError :: a Source #

data FractionalExponentBase Source #

Constructors

Base2 
Base10 

Instances

Instances details
Show FractionalExponentBase Source # 
Instance details

Defined in GHC.Internal.Real

(^%^) :: Integral a => Rational -> a -> Rational Source #

(^^%^^) :: Integral a => Rational -> a -> Rational Source #

powImpl :: (Num a, Integral b) => a -> b -> a Source #

powImplAcc :: (Num a, Integral b) => a -> b -> a -> a Source #