hat-2.8.0.0: libraries/PreludeBuiltin.hs
-- Contains foreign haskell declarations for all functions
-- not (portably) definable in Haskell.
module PreludeBuiltin (
-- reexport from module PreludeBuiltinTypes
-- (->)
Bool(True,False),Char,Int,Integer,Float,Double,IOError,IO
-- ,[]((:),[])
-- ,()(())
-- ,(,)((,)), (,,)((,,)),(,,,)((,,,)),(,,,,)((,,,,)),(,,,,,)((,,,,,))
-- ,(,,,,,,)((,,,,,,)),(,,,,,,,)((,,,,,,,)),(,,,,,,,,)((,,,,,,,,))
-- ,(,,,,,,,,,)((,,,,,,,,,)),(,,,,,,,,,,)((,,,,,,,,,,))
-- ,(,,,,,,,,,,,)((,,,,,,,,,,,)),(,,,,,,,,,,,,)((,,,,,,,,,,,,))
-- ,(,,,,,,,,,,,,,)((,,,,,,,,,,,,,)),(,,,,,,,,,,,,,,)((,,,,,,,,,,,,,,))
,String,error,undefined
-- general (->)
,seq
-- char
-- ,Char -- already re-exported above
,isAscii,isLatin1,isControl,isPrint,isSpace,isUpper,isLower,isAlpha,isDigit
,isOctDigit,isHexDigit,isAlphaNum,toUpper,toLower
,primIntToChar,primCharToInt,primUnicodeMaxBound
-- numeric
-- ,Int,Integer,Float,Double -- (,) -- already re-exported above
,primIntMinBound,primIntMaxBound
,primIntEq,primIntNe,primIntLt,primIntLe,primIntGt,primIntGe
,primIntQuot,primIntRem,primIntPlus,primIntMinus,primIntTimes
,primIntNegate,primIntAbs,primIntSignum,primIntegerFromInt
,primIntFromInteger,primIntegerEq,primIntegerNe,primIntegerLt
,primIntegerLe,primIntegerGt,primIntegerGe,primIntegerQuot
,primIntegerRem,primIntegerQuotRem ,primIntegerAdd
,primIntegerSub,primIntegerMul,primIntegerNeg
,primFloatFromInteger,primFloatRadix,primFloatDigits,primFloatRange
,primDecodeFloat,primEncodeFloat,primFloatIsNaN,primFloatIsInfinite
,primFloatIsDenormalized,primFloatIsNegativeZero,primFloatIsIEEE
,primFloatEq,primFloatNe,primFloatLt,primFloatLe,primFloatGt
,primFloatGe,primFloatPi,primFloatExp,primFloatLog,primFloatSqrt
,primFloatSin,primFloatCos,primFloatTan,primFloatAsin
,primFloatAcos,primFloatAtan,primFloatDiv,primFloatAdd
,primFloatSub,primFloatMul,primFloatAbs,primFloatSignum
,primDoubleFromInteger,primDoubleRadix,primDoubleDigits,primDoubleRange
,primDecodeDouble,primEncodeDouble,primDoubleIsNaN,primDoubleIsInfinite
,primDoubleIsDenormalized,primDoubleIsNegativeZero,primDoubleIsIEEE
,primDoubleEq,primDoubleNe,primDoubleLt,primDoubleLe
,primDoubleGt,primDoubleGe,primDoublePi,primDoubleExp,primDoubleLog
,primDoubleSqrt,primDoubleSin,primDoubleCos,primDoubleTan
,primDoubleAsin,primDoubleAcos,primDoubleAtan,primDoubleDiv
,primDoubleAdd,primDoubleSub,primDoubleMul,primDoubleAbs
,primDoubleSignum
-- IO
-- ,IO,IOError -- () -- already re-exported above
,primIOBind,primIOReturn
,ioError,userError,catch,putChar,getChar,getContents,readFile,writeFile
,appendFile,primIOErrorShow{- ,primIOErrorEq -}
) where
import PreludeBuiltinTypes as NotHat.T
import NotHat.Hat.Hat -- for some primitive types
import qualified NotHat.Prelude -- not to be transformed
import qualified NotHat.System.IO.Error -- for catch
import qualified NotHat.Data.Char as NotHat.Char -- not to be transformed
-- types appearing here
-- (->), String, Char, Bool, Int, Integer, Float, Double, (,), IO, IOError, ()
-- general:
infixr 0 `seq`
foreign import ccall "NotHat.Prelude.seq"
seq :: a -> b -> b
foreign import ccall "NotHat.Char.isAscii"
isAscii :: Char -> Bool
foreign import ccall "NotHat.Char.isLatin1"
isLatin1 :: Char -> Bool
foreign import ccall "NotHat.Char.isControl"
isControl :: Char -> Bool
foreign import ccall "NotHat.Char.isPrint"
isPrint :: Char -> Bool
foreign import ccall "NotHat.Char.isSpace"
isSpace :: Char -> Bool
foreign import ccall "NotHat.Char.isUpper"
isUpper :: Char -> Bool
foreign import ccall "NotHat.Char.isLower"
isLower :: Char -> Bool
foreign import ccall "NotHat.Char.isAlpha"
isAlpha :: Char -> Bool
foreign import ccall "NotHat.Char.isDigit"
isDigit :: Char -> Bool
foreign import ccall "NotHat.Char.isOctDigit"
isOctDigit :: Char -> Bool
foreign import ccall "NotHat.Char.isHexDigit"
isHexDigit :: Char -> Bool
foreign import ccall "NotHat.Char.isAlphaNum"
isAlphaNum :: Char -> Bool
foreign import ccall "NotHat.Char.toUpper"
toUpper :: Char -> Char
foreign import ccall "NotHat.Char.toLower"
toLower :: Char -> Char
-- Character code functions
foreign import ccall "NotHat.Char.ord"
primCharToInt :: Char -> Int
foreign import ccall "NotHat.Char.chr"
primIntToChar :: Int -> Char
foreign import ccall "NotHat.Prelude.maxBound"
primUnicodeMaxBound :: Char
-- Numerics
-- system dependent
foreign import ccall "NotHat.Prelude.minBound"
primIntMinBound :: Int
foreign import ccall "NotHat.Prelude.maxBound"
primIntMaxBound :: Int
foreign import ccall "NotHat.Prelude.=="
primIntEq :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude./="
primIntNe :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude.<"
primIntLt :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude.<="
primIntLe :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude.>"
primIntGt :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude.>="
primIntGe :: Int -> Int -> Bool
foreign import ccall "NotHat.Prelude.quot"
primIntQuot :: Int -> Int -> Int
foreign import ccall "NotHat.Prelude.rem"
primIntRem :: Int -> Int -> Int
foreign import ccall "NotHat.Prelude.+"
primIntPlus :: Int -> Int -> Int
foreign import ccall "NotHat.Prelude.-"
primIntMinus :: Int -> Int -> Int
foreign import ccall "NotHat.Prelude.*"
primIntTimes :: Int -> Int -> Int
foreign import ccall "NotHat.Prelude.negate"
primIntNegate :: Int -> Int
foreign import ccall "NotHat.Prelude.abs"
primIntAbs :: Int -> Int
foreign import ccall "NotHat.Prelude.signum"
primIntSignum :: Int -> Int
foreign import ccall "NotHat.Prelude.toInteger"
primIntegerFromInt :: Int -> Integer
foreign import ccall "NotHat.Prelude.fromInteger"
primIntFromInteger :: Integer -> Int
foreign import ccall "NotHat.Prelude.=="
primIntegerEq :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude./="
primIntegerNe :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude.<"
primIntegerLt :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude.<="
primIntegerLe :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude.>"
primIntegerGt :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude.>="
primIntegerGe :: Integer -> Integer -> Bool
foreign import ccall "NotHat.Prelude.quot"
primIntegerQuot :: Integer -> Integer -> Integer
foreign import ccall "NotHat.Prelude.rem"
primIntegerRem :: Integer -> Integer -> Integer
foreign import ccall "NotHat.Prelude.quotRem"
primIntegerQuotRem :: Integer -> Integer -> (Integer,Integer)
foreign import ccall "NotHat.Prelude.+"
primIntegerAdd :: Integer -> Integer -> Integer
foreign import ccall "NotHat.Prelude.-"
primIntegerSub :: Integer -> Integer -> Integer
foreign import ccall "NotHat.Prelude.*"
primIntegerMul :: Integer -> Integer -> Integer
foreign import ccall "NotHat.Prelude.negate"
primIntegerNeg :: Integer -> Integer
foreign import ccall "NotHat.Prelude.fromInteger"
primFloatFromInteger :: Integer -> Float
foreign import ccall "NotHat.Prelude.floatRadix"
primFloatRadix :: Float -> Integer
foreign import ccall "NotHat.Prelude.floatDigits"
primFloatDigits :: Float -> Int
foreign import ccall "NotHat.Prelude.floatRange"
primFloatRange :: Float -> (Int,Int)
foreign import ccall "NotHat.Prelude.decodeFloat"
primDecodeFloat :: Float -> (Integer,Int)
foreign import ccall "NotHat.Prelude.encodeFloat"
primEncodeFloat :: Integer -> Int -> Float
foreign import ccall "NotHat.Prelude.isNaN"
primFloatIsNaN :: Float -> Bool
foreign import ccall "NotHat.Prelude.isInfinite"
primFloatIsInfinite :: Float -> Bool
foreign import ccall "NotHat.Prelude.isDenormalized"
primFloatIsDenormalized :: Float -> Bool
foreign import ccall "NotHat.Prelude.isNegativeZero"
primFloatIsNegativeZero :: Float -> Bool
foreign import ccall "NotHat.Prelude.isIEEE"
primFloatIsIEEE :: Float -> Bool
foreign import ccall "NotHat.Prelude.=="
primFloatEq :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude./="
primFloatNe :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude.<"
primFloatLt :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude.<="
primFloatLe :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude.>"
primFloatGt :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude.>="
primFloatGe :: Float -> Float -> Bool
foreign import ccall "NotHat.Prelude.pi"
primFloatPi :: Float
foreign import ccall "NotHat.Prelude.exp"
primFloatExp :: Float -> Float
foreign import ccall "NotHat.Prelude.log"
primFloatLog :: Float -> Float
foreign import ccall "NotHat.Prelude.sqrt"
primFloatSqrt :: Float -> Float
foreign import ccall "NotHat.Prelude.sin"
primFloatSin :: Float -> Float
foreign import ccall "NotHat.Prelude.cos"
primFloatCos :: Float -> Float
foreign import ccall "NotHat.Prelude.tan"
primFloatTan :: Float -> Float
foreign import ccall "NotHat.Prelude.asin"
primFloatAsin :: Float -> Float
foreign import ccall "NotHat.Prelude.acos"
primFloatAcos :: Float -> Float
foreign import ccall "NotHat.Prelude.atan"
primFloatAtan :: Float -> Float
foreign import ccall "NotHat.Prelude./"
primFloatDiv :: Float -> Float -> Float
foreign import ccall "NotHat.Prelude.+"
primFloatAdd :: Float -> Float -> Float
foreign import ccall "NotHat.Prelude.-"
primFloatSub :: Float -> Float -> Float
foreign import ccall "NotHat.Prelude.*"
primFloatMul :: Float -> Float -> Float
foreign import ccall "NotHat.Prelude.abs"
primFloatAbs :: Float -> Float
foreign import ccall "NotHat.Prelude.signum"
primFloatSignum :: Float -> Float
foreign import ccall "NotHat.Prelude.fromInteger"
primDoubleFromInteger :: Integer -> Double
foreign import ccall "NotHat.Prelude.floatRadix"
primDoubleRadix :: Double -> Integer
foreign import ccall "NotHat.Prelude.floatDigits"
primDoubleDigits :: Double -> Int
foreign import ccall "NotHat.Prelude.floatRange"
primDoubleRange :: Double -> (Int,Int)
foreign import ccall "NotHat.Prelude.decodeFloat"
primDecodeDouble :: Double -> (Integer,Int)
foreign import ccall "NotHat.Prelude.encodeFloat"
primEncodeDouble :: Integer -> Int -> Double
foreign import ccall "NotHat.Prelude.isNaN"
primDoubleIsNaN :: Double -> Bool
foreign import ccall "NotHat.Prelude.isInfinite"
primDoubleIsInfinite :: Double -> Bool
foreign import ccall "NotHat.Prelude.isDenormalized"
primDoubleIsDenormalized :: Double -> Bool
foreign import ccall "NotHat.Prelude.isNegativeZero"
primDoubleIsNegativeZero :: Double -> Bool
foreign import ccall "NotHat.Prelude.isIEEE"
primDoubleIsIEEE :: Double -> Bool
foreign import ccall "NotHat.Prelude.=="
primDoubleEq :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude./="
primDoubleNe :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude.<"
primDoubleLt :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude.<="
primDoubleLe :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude.>"
primDoubleGt :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude.>="
primDoubleGe :: Double -> Double -> Bool
foreign import ccall "NotHat.Prelude.pi"
primDoublePi :: Double
foreign import ccall "NotHat.Prelude.exp"
primDoubleExp :: Double -> Double
foreign import ccall "NotHat.Prelude.log"
primDoubleLog :: Double -> Double
foreign import ccall "NotHat.Prelude.sqrt"
primDoubleSqrt :: Double -> Double
foreign import ccall "NotHat.Prelude.sin"
primDoubleSin :: Double -> Double
foreign import ccall "NotHat.Prelude.cos"
primDoubleCos :: Double -> Double
foreign import ccall "NotHat.Prelude.tan"
primDoubleTan :: Double -> Double
foreign import ccall "NotHat.Prelude.asin"
primDoubleAsin :: Double -> Double
foreign import ccall "NotHat.Prelude.acos"
primDoubleAcos :: Double -> Double
foreign import ccall "NotHat.Prelude.atan"
primDoubleAtan :: Double -> Double
foreign import ccall "NotHat.Prelude./"
primDoubleDiv :: Double -> Double -> Double
foreign import ccall "NotHat.Prelude.+"
primDoubleAdd :: Double -> Double -> Double
foreign import ccall "NotHat.Prelude.-"
primDoubleSub :: Double -> Double -> Double
foreign import ccall "NotHat.Prelude.*"
primDoubleMul :: Double -> Double -> Double
foreign import ccall "NotHat.Prelude.abs"
primDoubleAbs :: Double -> Double
foreign import ccall "NotHat.Prelude.signum"
primDoubleSignum :: Double -> Double
-- IO
foreign import ccall "NotHat.Prelude.>>="
primIOBind :: IO a -> (a -> IO b) -> IO b
foreign import ccall "NotHat.Prelude.return"
primIOReturn :: a -> IO a
foreign import ccall "NotHat.Prelude.show"
primIOErrorShow :: IOError -> String
{- currently excluded because instance Eq IOError missing in ghc 5.02
foreign import ccall "NotHat.Prelude.=="
primIOErrorEq :: IOError -> IOError -> Bool
-}
foreign import ccall "NotHat.Prelude.ioError"
ioError :: IOError -> IO a
foreign import ccall "NotHat.Prelude.userError"
userError :: String -> IOError
foreign import ccall "NotHat.System.IO.Error.catchIOError"
catch :: IO a -> (IOError -> IO a) -> IO a
-- foreign import ccall "NotHat.Prelude.putChar"
-- putChar :: Char -> IO ()
-- HACK!
foreign import ccall
"NotHat.(\\_ c -> T.outputTrace kputChar [c] Prelude.>> Prelude.putChar c) Prelude.True"
putChar :: Char -> IO ()
foreign import ccall "NotHat.Prelude.getChar"
getChar :: IO Char
foreign import ccall "NotHat.Prelude.getContents"
getContents :: IO String
foreign import ccall "NotHat.Prelude.readFile"
readFile :: String -> IO String
foreign import ccall "NotHat.(\\_ n s -> T.outputTrace kwriteFile s Prelude.>> Prelude.writeFile n s) Prelude.True"
writeFile :: String -> String -> IO ()
foreign import ccall "NotHat.(\\_ n s -> T.outputTrace kappendFile s Prelude.>> Prelude.appendFile n s) Prelude.True"
appendFile :: String -> String -> IO ()