1 -- compiled to produce a 1.3 (whatever that is) Prelude.hi file
5 -- 1.3 extras (I/O is later)
11 -- NO: really builtin (0.20+): trace,
13 (%), numerator, denominator, approxRational,
15 realPart, imagPart, conjugate, mkPolar, cis,
16 polar, magnitude, phase,
18 _appendPS, _breakPS, _concatPS, _dropPS, _dropWhilePS,
19 _filterPS, _foldlPS, _foldrPS, _headPS, _indexPS, _lengthPS,
20 _linesPS, _mapPS, _nilPS, _consPS, _nullPS, _packCBytes,
21 _packCString, _packString, _byteArrayToPS, _psToByteArray,
22 _reversePS, _spanPS, _splitAtPS, _substrPS, _tailPS, _takePS,
23 _takeWhilePS, _unpackPS, _wordsPS, _putPS,
25 (&&), (||), not, otherwise,
26 (^), (^^), appendBin, asTypeOf, atan2, fromIntegral,
27 fromRealFrac, gcd, isAlpha, isAlphanum, isAscii, isControl,
28 isDigit, isLower, isNullBin, isPrint, isSpace, isUpper, lcm,
29 maxChar, maxInt, minChar, minInt, nullBin, subtract, toLower,
30 toUpper, until, fst, snd, id, const, (.), flip, ($),
33 #if defined(__UNBOXED_INSTANCES__)
38 isAscii#, isControl#, isPrint#, isSpace#,
39 isUpper#, isLower#, isAlpha#, isDigit#, isAlphanum#,
43 head, last, tail, init, null, (++), (\\), genericLength,
44 length, (!!), map, filter, partition, {-BUILTIN: foldl,-}
45 foldl1, scanl, scanl1, {-BUILTIN: foldr,-} foldr1, scanr, scanr1,
46 iterate, repeat, cycle, take, drop, splitAt, takeWhile,
47 dropWhile, span, break, lines, words, unlines, unwords, nub,
48 reverse, and, or, any, all, elem, notElem, sum,
49 product, sums, products, maximum, minimum, concat,
50 transpose, zip, zip3, zip4, zip5, zip6, zip7, zipWith,
51 zipWith3, zipWith4, zipWith5, zipWith6, zipWith7, unzip,
52 unzip3, unzip4, unzip5, unzip6, unzip7,
54 array, listArray, (!), bounds, indices, elems, assocs,
55 accumArray, (//), accum, amap, ixmap,
57 reads, shows, show, read, lex, showChar, showString,
58 readParen, showParen, readLitChar, showLitChar, readSigned,
59 showSigned, showSpace__, readDec, showInt, readFloat, showFloat,
60 _showHex, _showRadix, _showDigit, -- non-std
63 _readRational, _showRational, -- extras!
65 -- 1.3 I/O stuff from PreludeIO, some *renamed*
114 primIOToIO, ioToPrimIO, -- extra, and very dodgy
116 -- and for foldr/build
119 _newArray, _freezeArray, _arrEleBottom,
120 _rangeComplaint_Ix_Int
123 -- few *Ty(s) imports
124 import TyArray ( Array(..), Assoc(..), _ByteArray )
125 import TyComplex ( Complex(..) )
126 --import Builtin ( trace )
127 import Cls hiding ( String )
129 import PreludeGlaST ( thenStrictlyST, _MutableByteArray, _MutableArray )
130 import PreludePrimIO ( thenPrimIO, returnPrimIO )
152 import PreludeIO renaming ( -- IOError13 to IOError -- can't rename PreludeCore types
153 appendFile13 to appendFile
154 , interact13 to interact
156 , readFile13 to readFile
160 , writeFile13 to writeFile
163 primIOToIO :: PrimIO a -> IO a
164 primIOToIO m = m `thenPrimIO` \ a -> return a
166 ioToPrimIO :: IO a -> PrimIO a
168 = io `thenPrimIO` \ r ->
170 Right a -> returnPrimIO a
171 Left e -> error ("I/O Error (ioToPrimIO): " ++ showsPrec 0 e "\n")
174 -- 1.3 extra functions
176 thenMaybe :: Maybe a -> (a -> Maybe b) -> Maybe b
177 thenMaybe Nothing _ = Nothing
178 thenMaybe (Just x) f = f x
180 curry :: ((a,b) -> c) -> a -> b -> c
181 curry f x y = f (x,y)
183 uncurry :: (a -> b -> c) -> (a,b) -> c
184 uncurry f (x,y) = f x y
187 copy :: Int -> a -> [a]
188 copy n x = take n (repeat x)
190 lookup :: Eq a => [(a,b)] -> a -> Maybe b
191 lookup [] _ = Nothing
192 lookup ((key,val) : rest) x | key == x = Just val
193 | otherwise = lookup rest x