integer-gmp-1.0.3.0: src/GHC/Integer.hs
{-# 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 ()