integer-types-0.1.4.0: Integer, Natural, and Positive
Safe HaskellSafe-Inferred
LanguageGHC2021

Integer

Synopsis

Types

data Integer #

Arbitrary precision integers. In contrast with fixed-size integral types such as Int, the Integer type represents the entire infinite range of integers.

Integers are stored in a kind of sign-magnitude form, hence do not expect two's complement form when using bit operations.

If the value is small (fit into an Int), IS constructor is used. Otherwise Integer and IN constructors are used to store a BigNat representing respectively the positive or the negative value magnitude.

Invariant: Integer and IN are used iff value doesn't fit in IS

Instances

Instances details
Bits Integer

Since: base-2.1

Instance details

Defined in GHC.Bits

Enum Integer

Since: base-2.1

Instance details

Defined in GHC.Enum

Num Integer

Since: base-2.1

Instance details

Defined in GHC.Num

Read Integer

Since: base-2.1

Instance details

Defined in GHC.Read

Integral Integer

Since: base-2.0.1

Instance details

Defined in GHC.Real

Real Integer

Since: base-2.0.1

Instance details

Defined in GHC.Real

Show Integer

Since: base-2.1

Instance details

Defined in GHC.Show

NFData Integer 
Instance details

Defined in Control.DeepSeq

Methods

rnf :: Integer -> () #

Eq Integer 
Instance details

Defined in GHC.Num.Integer

Methods

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

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

Ord Integer 
Instance details

Defined in GHC.Num.Integer

Hashable Integer 
Instance details

Defined in Data.Hashable.Class

Methods

hashWithSalt :: Int -> Integer -> Int #

hash :: Integer -> Int #

ConvertWithFinite Integer Source # 
Instance details

Defined in Integer.Finite

Increase Integer Source # 
Instance details

Defined in Integer.Increase

StrictlyIncrease Integer Source # 
Instance details

Defined in Integer.StrictlyIncrease

Subtraction Integer Source # 
Instance details

Defined in Integer.Subtraction

Subtraction' Integer Source # 
Instance details

Defined in Integer.Subtraction

Methods

subtract :: Subtraction a => a -> a -> Integer Source #

AbsoluteDifference Positive Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

IntegerConvert Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Integer Source # 
Instance details

Defined in Integer.Conversion

data Natural #

Natural number

Invariant: numbers <= 0xffffffffffffffff use the NS constructor

Instances

Instances details
Bits Natural

Since: base-4.8.0

Instance details

Defined in GHC.Bits

Enum Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Enum

Num Natural

Note that Natural's Num instance isn't a ring: no element but 0 has an additive inverse. It is a semiring though.

Since: base-4.8.0.0

Instance details

Defined in GHC.Num

Read Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Read

Integral Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Real

Real Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Real

Show Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Show

NFData Natural

Since: deepseq-1.4.0.0

Instance details

Defined in Control.DeepSeq

Methods

rnf :: Natural -> () #

Eq Natural 
Instance details

Defined in GHC.Num.Natural

Methods

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

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

Ord Natural 
Instance details

Defined in GHC.Num.Natural

Hashable Natural 
Instance details

Defined in Data.Hashable.Class

Methods

hashWithSalt :: Int -> Natural -> Int #

hash :: Natural -> Int #

BoundedBelow Natural Source # 
Instance details

Defined in Integer.BoundedBelow

ConvertWithFinite Natural Source # 
Instance details

Defined in Integer.Finite

Increase Natural Source # 
Instance details

Defined in Integer.Increase

StrictlyIncrease Natural Source # 
Instance details

Defined in Integer.StrictlyIncrease

Subtraction Natural Source # 
Instance details

Defined in Integer.Subtraction

AbsoluteDifference Positive Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

IntegerConvert Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Natural Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Natural Source # 
Instance details

Defined in Integer.Conversion

data Positive Source #

Instances

Instances details
Enum Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Num Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Read Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Integral Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Real Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Show Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

NFData Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Methods

rnf :: Positive -> () #

Eq Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Ord Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Hashable Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

Methods

hashWithSalt :: Int -> Positive -> Int #

hash :: Positive -> Int #

BoundedBelow Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

ConvertWithFinite Positive Source # 
Instance details

Defined in Integer.Finite

Increase Positive Source # 
Instance details

Defined in Integer.Increase

StrictlyIncrease Positive Source # 
Instance details

Defined in Integer.StrictlyIncrease

Subtraction Positive Source # 
Instance details

Defined in Integer.Subtraction

AbsoluteDifference Positive Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

IntegerConvert Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Positive Source # 
Instance details

Defined in Integer.Conversion

data Signed Source #

Constructors

Zero 
NonZero Sign Positive 

Bundled Patterns

pattern Minus :: Positive -> Signed 
pattern Plus :: Positive -> Signed 

Instances

Instances details
Enum Signed Source # 
Instance details

Defined in Integer.Signed

Num Signed Source # 
Instance details

Defined in Integer.Signed

Integral Signed Source # 
Instance details

Defined in Integer.Signed

Real Signed Source # 
Instance details

Defined in Integer.Signed

Show Signed Source # 
Instance details

Defined in Integer.Signed

NFData Signed Source # 
Instance details

Defined in Integer.Signed

Methods

rnf :: Signed -> () #

Eq Signed Source # 
Instance details

Defined in Integer.Signed

Methods

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

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

Ord Signed Source # 
Instance details

Defined in Integer.Signed

Hashable Signed Source # 
Instance details

Defined in Integer.Signed

Methods

hashWithSalt :: Int -> Signed -> Int #

hash :: Signed -> Int #

ConvertWithFinite Signed Source # 
Instance details

Defined in Integer.Finite

Increase Signed Source # 
Instance details

Defined in Integer.Increase

StrictlyIncrease Signed Source # 
Instance details

Defined in Integer.StrictlyIncrease

Subtraction Signed Source # 
Instance details

Defined in Integer.Subtraction

Subtraction' Signed Source # 
Instance details

Defined in Integer.Subtraction

Methods

subtract :: Subtraction a => a -> a -> Signed Source #

AbsoluteDifference Positive Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

IntegerConvert Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Signed Source # 
Instance details

Defined in Integer.Conversion

data Sign Source #

Constructors

MinusSign 
PlusSign 

Instances

Instances details
Bounded Sign Source # 
Instance details

Defined in Integer.Sign

Enum Sign Source # 
Instance details

Defined in Integer.Sign

Methods

succ :: Sign -> Sign #

pred :: Sign -> Sign #

toEnum :: Int -> Sign #

fromEnum :: Sign -> Int #

enumFrom :: Sign -> [Sign] #

enumFromThen :: Sign -> Sign -> [Sign] #

enumFromTo :: Sign -> Sign -> [Sign] #

enumFromThenTo :: Sign -> Sign -> Sign -> [Sign] #

Show Sign Source # 
Instance details

Defined in Integer.Sign

Methods

showsPrec :: Int -> Sign -> ShowS #

show :: Sign -> String #

showList :: [Sign] -> ShowS #

NFData Sign Source # 
Instance details

Defined in Integer.Sign

Methods

rnf :: Sign -> () #

Eq Sign Source # 
Instance details

Defined in Integer.Sign

Methods

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

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

Ord Sign Source # 
Instance details

Defined in Integer.Sign

Methods

compare :: Sign -> Sign -> Ordering #

(<) :: Sign -> Sign -> Bool #

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

(>) :: Sign -> Sign -> Bool #

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

max :: Sign -> Sign -> Sign #

min :: Sign -> Sign -> Sign #

Hashable Sign Source # 
Instance details

Defined in Integer.Sign

Methods

hashWithSalt :: Int -> Sign -> Int #

hash :: Sign -> Int #

Addition

class Increase a where Source #

Class of numbers are closed under addition with Natural

Methods

increase :: Natural -> a -> a Source #

Addition

Instances

Instances details
Increase Positive Source # 
Instance details

Defined in Integer.Increase

Increase Signed Source # 
Instance details

Defined in Integer.Increase

Increase Integer Source # 
Instance details

Defined in Integer.Increase

Increase Natural Source # 
Instance details

Defined in Integer.Increase

class StrictlyIncrease a where Source #

Class of numbers that are closed under addition with Positive

Methods

strictlyIncrease :: Positive -> a -> a Source #

Addition

Subtraction

class Subtraction a where Source #

Domain of a subtraction operation

Minimal complete definition

Nothing

Methods

subtractInteger :: a -> a -> Integer Source #

subtractSigned :: a -> a -> Signed Source #

class Subtraction' b where Source #

Codomain of a subtraction operation

Methods

subtract :: Subtraction a => a -> a -> b Source #

Instances

Instances details
Subtraction' Signed Source # 
Instance details

Defined in Integer.Subtraction

Methods

subtract :: Subtraction a => a -> a -> Signed Source #

Subtraction' Integer Source # 
Instance details

Defined in Integer.Subtraction

Methods

subtract :: Subtraction a => a -> a -> Integer Source #

class AbsoluteDifference a b where Source #

Methods

absoluteDifference :: a -> b -> Natural Source #

Instances

Instances details
AbsoluteDifference Positive Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Positive Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Signed Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Integer Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Positive Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Signed Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Integer Source # 
Instance details

Defined in Integer.AbsoluteDifference

AbsoluteDifference Natural Natural Source # 
Instance details

Defined in Integer.AbsoluteDifference

Conversion

class IntegerNarrow a b where Source #

Methods

narrow :: a -> Maybe b Source #

Instances

Instances details
IntegerNarrow Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Signed Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Integer Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerNarrow Natural Natural Source # 
Instance details

Defined in Integer.Conversion

class IntegerNarrow a b => IntegerConvert a b where Source #

Methods

convert :: a -> b Source #

Instances

Instances details
IntegerConvert Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Positive Natural Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerConvert Natural Natural Source # 
Instance details

Defined in Integer.Conversion

class (IntegerConvert a b, IntegerConvert b a) => IntegerEquiv a b Source #

Instances

Instances details
IntegerEquiv Positive Positive Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Signed Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Signed Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Integer Signed Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Integer Integer Source # 
Instance details

Defined in Integer.Conversion

IntegerEquiv Natural Natural Source # 
Instance details

Defined in Integer.Conversion

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

Partial conversion between Integral types via Integer

yolo = fromInteger . toInteger

class (Bounded b, Integral b) => Finite b where Source #

Instances

Instances details
Finite Int Source # 
Instance details

Defined in Integer.Finite

Finite Word Source # 
Instance details

Defined in Integer.Finite

Lower bound

class BoundedBelow a where Source #

Methods

minBound :: a Source #

Instances

Instances details
BoundedBelow Positive Source # 
Instance details

Defined in Integer.Positive.Unsafe

BoundedBelow Natural Source # 
Instance details

Defined in Integer.BoundedBelow