GHC/Integer.lhs

\begin{code}

    {-# LANGUAGE CPP, MagicHash, NoImplicitPrelude #-}

    -----------------------------------------------------------------------------
    -- |
    -- Module      :  GHC.Integer
    -- Copyright   :  (c) The University of Glasgow 1994-2008
    -- License     :  see libraries/integer-gmp/LICENSE
    --
    -- Maintainer  :  cvs-ghc@haskell.org
    -- Stability   :  internal
    -- Portability :  non-portable (GHC Extensions)
    --
    -- The 'Integer' type.
    --
    -- This module exposes the /portable/ 'Integer' API.  See
    -- "GHC.Integer.GMP.Internals" for the GMP-specific internal
    -- representation of 'Integer' as well as optimized GMP-specific
    -- operations.
    -----------------------------------------------------------------------------

    #include "MachDeps.h"

    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,
        eqInteger#, neqInteger#,
        leInteger#, gtInteger#, ltInteger#, geInteger#,

        -- * Bit-operations
        andInteger, orInteger, xorInteger, complementInteger,
        shiftLInteger, shiftRInteger, testBitInteger,

        -- * Hashing
        hashInteger,
     ) where

    import GHC.Integer.Type

    default ()

\end{code}