{-# LANGUAGE CPP #-} {-# LANGUAGE MagicHash #-} {-# LANGUAGE NoImplicitPrelude #-} #include "MachDeps.h" -- | -- Module : GHC.Integer.Type -- Copyright : (c) Herbert Valerio Riedel 2014 -- License : BSD3 -- -- Maintainer : ghc-devs@haskell.org -- Stability : provisional -- Portability : non-portable (GHC Extensions) -- -- The 'Integer' type. -- -- This module exposes the /portable/ 'Integer' API. See -- "GHC.Integer.GMP.Internals" for the @integer-gmp@-specific internal -- representation of 'Integer' as well as optimized GMP-specific -- operations. module GHC.Integer ( Integer, -- * Construct 'Integer's mkInteger, smallInteger, wordToInteger, #if WORD_SIZE_IN_BITS < 64 word64ToInteger, int64ToInteger, #endif -- * Conversion to other integral types integerToWord, integerToInt, #if WORD_SIZE_IN_BITS < 64 integerToWord64, integerToInt64, #endif -- * Helpers for 'RealFloat' type-class operations encodeFloatInteger, floatFromInteger, encodeDoubleInteger, decodeDoubleInteger, doubleFromInteger, -- * Arithmetic operations plusInteger, minusInteger, timesInteger, negateInteger, absInteger, signumInteger, divModInteger, divInteger, modInteger, quotRemInteger, quotInteger, remInteger, -- * Comparison predicates eqInteger, neqInteger, leInteger, gtInteger, ltInteger, geInteger, compareInteger, -- ** 'Int#'-boolean valued versions of comparison predicates -- -- | These operations return @0#@ and @1#@ instead of 'False' and -- 'True' respectively. See -- <https://gitlab.haskell.org/ghc/ghc/wikis/prim-bool PrimBool wiki-page> -- for more details eqInteger#, neqInteger#, leInteger#, gtInteger#, ltInteger#, geInteger#, -- * Bit-operations andInteger, orInteger, xorInteger, complementInteger, shiftLInteger, shiftRInteger, testBitInteger, popCountInteger, bitInteger, -- * Hashing hashInteger, ) where import GHC.Integer.Type default ()