From eba99148728b7fecd4395e461d70aa77dcc31d28 Mon Sep 17 00:00:00 2001 From: sof Date: Sat, 23 Jan 1999 18:07:59 +0000 Subject: [PATCH] [project @ 1999-01-23 18:07:42 by sof] updates and tweaks --- ghc/tests/programs/andre_monad/Main.hs | 2 +- .../programs/andre_monad/andre_monad.stdout | 1 + .../programs/barton-mangler-bug/Basic.hs | 15 +- ghc/tests/programs/cholewo-eval/Arr.lhs | 52 +- ghc/tests/programs/cholewo-eval/Main.lhs | 2 +- .../programs/cholewo-eval/cholewo-eval.stdout | 2 +- ghc/tests/programs/dmgob_native1/Main.lhs | 2 +- ghc/tests/programs/dmgob_native1/Makefile | 5 +- .../dmgob_native1/dmgob_native1.stdout | 7 +- ghc/tests/programs/dmgob_native1/test_data | Bin 48 -> 48 bytes ghc/tests/programs/dmgob_native2/Makefile | 2 +- .../dmgob_native2/dmgob_native2.stdout | Bin 67660 -> 153 bytes .../dmgob_native2/dmgob_native2.stdout2 | Bin 67660 -> 153 bytes .../programs/fast2haskell/Fast2haskell.hs | 2 +- ghc/tests/programs/fast2haskell/Word.hs | 14 +- ghc/tests/programs/fun_insts/Main.hs | 4 +- ghc/tests/programs/jules_xref/Main.hs | 14 +- .../programs/jules_xref/jules_xref.stdout | 1000 ++++++++--------- ghc/tests/programs/lex/lex.stdout | 2 +- ghc/tests/programs/mk/target.mk | 2 +- ghc/tests/programs/sanders_array/Main.hs | 2 +- .../sanders_array/sanders_array.stdout | 2 +- ghc/tests/programs/seward-space-leak/Main.lhs | 2 +- ghc/tests/programs/waugh_neural/BpGen.lhs | 5 + ghc/tests/programs/waugh_neural/Makefile | 2 + ghc/tests/programs/zhang_ccall/Main.hs | 10 +- ghc/tests/programs/zhang_ccall/ccall.h | 1 + 27 files changed, 587 insertions(+), 565 deletions(-) create mode 100644 ghc/tests/programs/zhang_ccall/ccall.h diff --git a/ghc/tests/programs/andre_monad/Main.hs b/ghc/tests/programs/andre_monad/Main.hs index c2226a2f94e4..7e3dda636274 100644 --- a/ghc/tests/programs/andre_monad/Main.hs +++ b/ghc/tests/programs/andre_monad/Main.hs @@ -56,7 +56,7 @@ u `quo` v = Bin Quo u v term0,term1,term2 :: Term term0 = Con 6 `mul` Con 9 term1 = (Con 4 `mul` Con 13) `add` Con 2 -term2 = (Con 1 `quo` Con 0) `add` Con 2 +term2 = (Con 1 `quo` Con 2) `add` Con 2 term3 = (((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((( Con 7777 `mul` Con 13) `quo` Con 13) diff --git a/ghc/tests/programs/andre_monad/andre_monad.stdout b/ghc/tests/programs/andre_monad/andre_monad.stdout index e69de29bb2d1..7ea358a0c967 100644 --- a/ghc/tests/programs/andre_monad/andre_monad.stdout +++ b/ghc/tests/programs/andre_monad/andre_monad.stdout @@ -0,0 +1 @@ +"(2,15002)" diff --git a/ghc/tests/programs/barton-mangler-bug/Basic.hs b/ghc/tests/programs/barton-mangler-bug/Basic.hs index e975f747a478..ad240f8cfeb6 100644 --- a/ghc/tests/programs/barton-mangler-bug/Basic.hs +++ b/ghc/tests/programs/barton-mangler-bug/Basic.hs @@ -223,8 +223,7 @@ makeWin st wid sig = nullWindow in PieceContRep wins instance Signal BasicSignal where - toSig Overshoot{start_delay,pulse_width, - ringing,oscillation,damp_fac} = + toSig (Overshoot start_delay pulse_width ringing oscillation damp_fac) = let ring = sine ringing oscillation 0.0 cond = asTypeOf (expc damp_fac) ring sig = temp ring cond @@ -237,8 +236,16 @@ instance Signal BasicSignal where Window LocalZero (TimeEvent (fromPhysical pulse_width)) sig |> nullWindow in PieceContRep wins - toSig Pulse_dc{start_delay,rise_time,pulse_width,fall_time, - dc_offset,period,amplitude,over,under} = + toSig Pulse_dc{ start_delay = start_delay + , rise_time = rise_time + , pulse_width = pulse_width + , fall_time = fall_time + , dc_offset = dc_offset + , period = period + , amplitude = amplitude + , over = over + , under = under + } = let pul = trap start_delay rise_time pulse_width fall_time amplitude so = toPhysical ((fromPhysical start_delay) + (fromPhysical rise_time)) su = toPhysical ((fromPhysical so) + (fromPhysical pulse_width) + (fromPhysical fall_time)) diff --git a/ghc/tests/programs/cholewo-eval/Arr.lhs b/ghc/tests/programs/cholewo-eval/Arr.lhs index 51a936b80273..b1f4d8076ecf 100644 --- a/ghc/tests/programs/cholewo-eval/Arr.lhs +++ b/ghc/tests/programs/cholewo-eval/Arr.lhs @@ -46,7 +46,7 @@ fromVector :: Vector a -> Array Int a fromVector (Vector x) = x instance Functor (Vector) where - map fn x = toVector (map fn (fromVector x)) + fmap fn x = toVector (fmap fn (fromVector x)) {-instance Eq a => Eq (Vector a) where -- (Vector x) == (Vector y) = x == y @@ -62,11 +62,11 @@ instance Read a => Read (Vector a) where instance Num b => Num (Vector b) where (+) = zipVector "+" (+) (-) = zipVector "-" (-) - negate = map negate - abs = map abs - signum = map signum + negate = fmap negate + abs = fmap abs + signum = fmap signum -- (*) = matMult -- works only for matrices! --- fromInteger = map fromInteger +-- fromInteger = fmap fromInteger \end{code} @@ -88,7 +88,7 @@ zipVector s f (Vector a) (Vector b) | otherwise = error ("zipVector: " ++ s ++ ": unconformable arrays") scaleVector :: Num a => a -> Vector a -> Vector a -scaleVector a = map (* a) +scaleVector a = fmap (* a) sumVector :: Num a => Vector a -> a sumVector = sum . elems . fromVector @@ -113,7 +113,7 @@ fromMatrix :: Matrix a -> Array (Int, Int) a fromMatrix (Matrix x) = x instance Functor (Matrix) where - map fn x = toMatrix (map fn (fromMatrix x)) + fmap fn x = toMatrix (fmap fn (fromMatrix x)) --instance Eq a => Eq (Matrix a) where -- (Matrix x) == (Matrix y) = x == y @@ -133,11 +133,11 @@ instance Read a => Read (Matrix a) where instance Num b => Num (Matrix b) where (+) = zipMatrix "+" (+) (-) = zipMatrix "-" (-) - negate = map negate - abs = map abs - signum = map signum + negate = fmap negate + abs = fmap abs + signum = fmap signum x * y = toMatrix (matMult (fromMatrix x) (fromMatrix y)) -- works only for matrices! --- fromInteger = map fromInteger +-- fromInteger = fmap fromInteger \end{code} Convert a nested list to a matrix. @@ -159,7 +159,7 @@ zipMatrix s f (Matrix a) (Matrix b) | otherwise = error ("zipMatrix: " ++ s ++ ": unconformable arrays") scaleMatrix :: Num a => a -> Matrix a -> Matrix a -scaleMatrix a = map (* a) +scaleMatrix a = fmap (* a) sumMatrix :: Num a => Matrix a -> a sumMatrix = sum . elems . fromMatrix @@ -204,9 +204,9 @@ Overload arithmetical operators to work on lists. instance Num a => Num [a] where (+) = safezipWith "+" (+) (-) = safezipWith "-" (-) - negate = map negate - abs = map abs - signum = map signum + negate = fmap negate + abs = fmap abs + signum = fmap signum -- (*) = undefined -- fromInteger = undefined \end{code} @@ -219,8 +219,8 @@ sum1 = foldl1 (+) \end{code} \begin{code} -map2 f = map (map f) -map3 f = map (map2 f) +map2 f = fmap (fmap f) +map3 f = fmap (map2 f) \end{code} Map function f at position n only. Out of range indices are silently @@ -260,16 +260,16 @@ Overload arithmetical operators to work on arrays. instance (Ix a, Show a, Num b) => Num (Array a b) where (+) = zipArr "+" (+) (-) = zipArr "-" (-) - negate = map negate - abs = map abs - signum = map signum + negate = fmap negate + abs = fmap abs + signum = fmap signum -- (*) = matMult -- works only for matrices! -- fromInteger = map fromInteger \end{code} \begin{xcode} scaleArr :: (Ix i, Num a) => a -> Array i a -> Array i a -scaleArr a = map (*a) +scaleArr a = fmap (*a) sumArr :: (Ix i, Num a) => Array i a -> a sumArr = sum . elems @@ -362,23 +362,23 @@ padleft n x | n <= length x = x \begin{code} padMatrix :: RealFloat a => Int -> Matrix a -> Matrix String -padMatrix n x = let ss = map (\a -> showFFloat (Just n) a "") x - maxw = maximum (map length (elems (fromMatrix ss))) - in map (padleft maxw) ss +padMatrix n x = let ss = fmap (\a -> showFFloat (Just n) a "") x + maxw = maximum (fmap length (elems (fromMatrix ss))) + in fmap (padleft maxw) ss \end{code} \begin{xcode} showsVector :: (RealFloat a) => Int -> Vector a -> ShowS showsVector n x z1 = let x' = padArr n x (l,u) = bounds x' in - concat (map (\ (i, s) -> if i == u then s ++ "\n" else s ++ " ") (assocs x')) ++ z1 + concat (fmap (\ (i, s) -> if i == u then s ++ "\n" else s ++ " ") (assocs x')) ++ z1 \end{xcode} \begin{xcode} showsMatrix :: RealFloat a => Int -> Matrix a -> ShowS showsMatrix n x z1 = let x' = padMatrix n x ((l,l'),(u,u')) = bounds x' in - concat (map (\ ((i,j), s) -> if j == u' then s ++ "\n" else s ++ " ") (assocs x')) ++ z1 + concat (fmap (\ ((i,j), s) -> if j == u' then s ++ "\n" else s ++ " ") (assocs x')) ++ z1 \end{xcode} {- diff --git a/ghc/tests/programs/cholewo-eval/Main.lhs b/ghc/tests/programs/cholewo-eval/Main.lhs index 0c50141d4ffb..a73021148b4d 100644 --- a/ghc/tests/programs/cholewo-eval/Main.lhs +++ b/ghc/tests/programs/cholewo-eval/Main.lhs @@ -9,7 +9,7 @@ type DF a = Vector a -> Vector a \end{code} \begin{code} -data (Eval a) => ScgData a = ScgData {k :: !Int, err :: !a, +data {-(Eval a) =>-} ScgData a = ScgData {k :: !Int, err :: !a, w, p, r :: !(Vector a), delta, pnorm2, lambda, lambdabar :: !a, success :: !Bool} diff --git a/ghc/tests/programs/cholewo-eval/cholewo-eval.stdout b/ghc/tests/programs/cholewo-eval/cholewo-eval.stdout index d44ace1cb01e..22d4567e5b9b 100644 --- a/ghc/tests/programs/cholewo-eval/cholewo-eval.stdout +++ b/ghc/tests/programs/cholewo-eval/cholewo-eval.stdout @@ -1 +1 @@ -[-0.5105811455265337, -0.7565080326002654] +[-0.5105811455265337,-0.7565080326002654] diff --git a/ghc/tests/programs/dmgob_native1/Main.lhs b/ghc/tests/programs/dmgob_native1/Main.lhs index 4b01ceea2d20..70c36b10d85b 100644 --- a/ghc/tests/programs/dmgob_native1/Main.lhs +++ b/ghc/tests/programs/dmgob_native1/Main.lhs @@ -33,7 +33,7 @@ blank line, etc. > let > vs = readVectors bs > in -> putStr (display vs) +> putStrLn (display vs) > > _ -> error " need a binary file name" diff --git a/ghc/tests/programs/dmgob_native1/Makefile b/ghc/tests/programs/dmgob_native1/Makefile index 4e94ecb2e227..1df0177ad6fe 100644 --- a/ghc/tests/programs/dmgob_native1/Makefile +++ b/ghc/tests/programs/dmgob_native1/Makefile @@ -2,7 +2,10 @@ TOP = .. include $(TOP)/mk/boilerplate.mk SRC_RUNTEST_OPTS += test_data -SRC_HC_OPTS += -cpp -syslib hbc +SRC_HC_OPTS += -cpp -syslib misc +EXTRA_LD_OPTS += -syslib misc + +OBJS = $(HS_OBJS) all :: runtest diff --git a/ghc/tests/programs/dmgob_native1/dmgob_native1.stdout b/ghc/tests/programs/dmgob_native1/dmgob_native1.stdout index 5b4a0bcf23c1..aa9b4b47d178 100644 --- a/ghc/tests/programs/dmgob_native1/dmgob_native1.stdout +++ b/ghc/tests/programs/dmgob_native1/dmgob_native1.stdout @@ -1,10 +1,11 @@ 3 -[1.00000000, 2.00000000, 3.00000000] +[1.0,2.0,3.0] 2 -[1.00000000, 2.00000000] +[1.0,2.0] 4 -[1.00000000, 2.00000000, 3.00000000, 4.00000000] +[1.0,2.0,3.0,4.0] + diff --git a/ghc/tests/programs/dmgob_native1/test_data b/ghc/tests/programs/dmgob_native1/test_data index b7ec9fdbf4b0fdc94b3996d6e9489f61a1fd4300..7d217a5f592be4e0f71c7d75c0c7b5ad88882117 100644 GIT binary patch literal 48 dcmZQ(0D%U3AmIQ+4on~}l+S|12FU@%9ROoN1jhgX literal 48 jcmZQzU|_ayU|?`y0Adiqz`z9K1KBJvHb~B)fq?-4Y+VG$ diff --git a/ghc/tests/programs/dmgob_native2/Makefile b/ghc/tests/programs/dmgob_native2/Makefile index 5e846e0b8526..d6a976db4a58 100644 --- a/ghc/tests/programs/dmgob_native2/Makefile +++ b/ghc/tests/programs/dmgob_native2/Makefile @@ -1,7 +1,7 @@ TOP = .. include $(TOP)/mk/boilerplate.mk -SRC_HC_OPTS += -cpp -syslib hbc +SRC_HC_OPTS += -cpp -syslib misc all :: runtest diff --git a/ghc/tests/programs/dmgob_native2/dmgob_native2.stdout b/ghc/tests/programs/dmgob_native2/dmgob_native2.stdout index cd6481237553703cf05ad8410baee1c68b621653..4bfb34b45141738477dbf2b142270bb64f46bc5a 100644 GIT binary patch delta 7 OcmX>zfn_G+gqZ*hF9Re1 literal 67660 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 z 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 Hyi4QC5L*$~ diff --git a/ghc/tests/programs/dmgob_native2/dmgob_native2.stdout2 b/ghc/tests/programs/dmgob_native2/dmgob_native2.stdout2 index 97729b01e6fcaf45e9104c50c523f2abe2053567..96dde0798418af872fb21f51c12d3557a3f7f388 100644 GIT binary patch delta 7 OcmX>zfn_G+gqZ*hF9Re1 literal 67660 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 k6g@%2?j!lGg+EdT%j diff --git a/ghc/tests/programs/fast2haskell/Fast2haskell.hs b/ghc/tests/programs/fast2haskell/Fast2haskell.hs index dc591ba9c4db..de3aa0fbb1fa 100644 --- a/ghc/tests/programs/fast2haskell/Fast2haskell.hs +++ b/ghc/tests/programs/fast2haskell/Fast2haskell.hs @@ -6,7 +6,7 @@ land_i, lnot_i, lor_i, lshift_i, rshift_i, descr, destr_update, indassoc, lowbound, tabulate, upbound, update, valassoc) where { - import Word; + import Word2; import Complex; -- 1.3 import Array; -- 1.3 type Complex_type = Complex Double; diff --git a/ghc/tests/programs/fast2haskell/Word.hs b/ghc/tests/programs/fast2haskell/Word.hs index 351193e0bc09..4c7091cdcf29 100644 --- a/ghc/tests/programs/fast2haskell/Word.hs +++ b/ghc/tests/programs/fast2haskell/Word.hs @@ -7,7 +7,7 @@ module Word2 ( byteToInt, shortToInt, wordToInt ) where -import GHC +import PrelGHC import PrelBase infixl 8 `bitLsh`, `bitRsh` @@ -32,10 +32,10 @@ instance Bits Word where bitXor (Word x) (Word y) = error "later..." -- Word (XOR x y) bitCompl (Word x) = case not# x of x' -> Word x' bitLsh (Word x) (I# y) = case shiftL# x y of z -> Word z - bitRsh (Word x) (I# y) = case shiftRA# x y of z -> Word z + bitRsh (Word x) (I# y) = case shiftRL# x y of z -> Word z bitSwap (Word x) = --Word (OR (LSH x 16) (AND (RSH x 16) 65535)) case shiftL# x 16# of { a# -> - case shiftRA# x 16# of { b# -> + case shiftRL# x 16# of { b# -> case and# b# (i2w 65535#) of { c# -> case or# a# c# of { r# -> Word r# }}}} @@ -46,9 +46,9 @@ w2i x = word2Int# x i2w x = int2Word# x instance Num Word where - Word x + Word y = case plusInt# (w2i x) (w2i y) of z -> Word (i2w z) - Word x - Word y = case minusInt# (w2i x) (w2i y) of z -> Word (i2w z) - Word x * Word y = case timesInt# (w2i x) (w2i y) of z -> Word (i2w z) + Word x + Word y = case (w2i x) +# (w2i y) of z -> Word (i2w z) + Word x - Word y = case (w2i x) -# (w2i y) of z -> Word (i2w z) + Word x * Word y = case (w2i x) *# (w2i y) of z -> Word (i2w z) negate (Word x) = case negateInt# (w2i x) of z -> Word (i2w z) fromInteger (J# a# s# d#) = case integer2Int# a# s# d# of { z# -> @@ -56,7 +56,7 @@ instance Num Word where instance Show Word where showsPrec _ (Word w) = - let i = toInteger (I# (w2i w)) + (if geWord# w (i2w 0#) then 0 else 2*(toInteger maxBound + 1)) + let i = toInteger (I# (w2i w)) + (if geWord# w (i2w 0#) then 0 else 2*(toInteger (maxBound::Int) + 1)) in showString (conv 8 i) conv :: Int -> Integer -> String diff --git a/ghc/tests/programs/fun_insts/Main.hs b/ghc/tests/programs/fun_insts/Main.hs index b7f905306eba..286154ccb88c 100644 --- a/ghc/tests/programs/fun_insts/Main.hs +++ b/ghc/tests/programs/fun_insts/Main.hs @@ -1,4 +1,4 @@ ---!!! Defines functions as an instance of Num +-- !!! Defines functions as an instance of Num module Main where @@ -20,4 +20,4 @@ cc = cos * cos tt = ss + cc -- sin**2 + cos**2 = 1 -main = putStr ((show (tt 0.4))++ " "++(show (tt 1.652))) +main = putStrLn ((show (tt 0.4))++ " "++(show (tt 1.652))) diff --git a/ghc/tests/programs/jules_xref/Main.hs b/ghc/tests/programs/jules_xref/Main.hs index 453d7b53a70c..b9126f403e97 100644 --- a/ghc/tests/programs/jules_xref/Main.hs +++ b/ghc/tests/programs/jules_xref/Main.hs @@ -1,4 +1,4 @@ ---!!! a performance-problem test from Jules. +-- !!! a performance-problem test from Jules. -- further comment at the end -- module Main where @@ -40,7 +40,7 @@ avAdd (ABranch l yk yv r hy) xk xv ---==========================================================-- +-- ==========================================================-- -- {- avLookup :: Ord a => ATree a b -> @@ -56,7 +56,7 @@ avLookup (ABranch l k v r _) kk ---==========================================================-- +-- ==========================================================-- -- avCombine :: ATree a b -> Int -> @@ -86,9 +86,9 @@ avCombine t1 h1 t2 h2 t3 h3 ak av ck cv max1 n m = 1 + (if n > m then n else m) ---==========================================================-- ---=== end AVLTree.hs ===-- ---==========================================================-- +-- ==========================================================-- +-- === end AVLTree.hs ===-- +-- ==========================================================-- @@ -99,7 +99,7 @@ xref stab lineno [] = stab xref stab lineno ('\n':cs) = xref stab (lineno+1) cs xref stab lineno (c:cs) = if isAlpha c then - let (word, rest) = span isAlphanum cs + let (word, rest) = span isAlphaNum cs in xref (avAdd stab (c:word) lineno) lineno rest else xref stab lineno cs diff --git a/ghc/tests/programs/jules_xref/jules_xref.stdout b/ghc/tests/programs/jules_xref/jules_xref.stdout index b92c5a0659b3..8a8af9e4c675 100644 --- a/ghc/tests/programs/jules_xref/jules_xref.stdout +++ b/ghc/tests/programs/jules_xref/jules_xref.stdout @@ -1,500 +1,500 @@ -("A", [3]) -("AAp", [26, 27, 63, 937]) -("ACase", [30, 31, 67, 719]) -("AConstr", [25, 25, 62]) -("ALam", [32, 32, 64, 967]) -("ALet", [28, 29, 65, 1015]) -("AList", [415, 553, 649, 675, 700, 762, 770, 773, 782, 799, 802, 899]) -("ANum", [24, 24, 61, 515]) -("AVar", [23, 23, 60, 879]) -("Also", [596, 682]) -("AnnExpr", [17, 18, 44, 45, 52, 120, 842]) -("Association", [411]) -("AtomicProgram", [119]) -("BaseDefs", [8]) -("Big", [718, 733, 735]) -("CASE", [601, 622, 822]) -("CExpr", [511, 586, 589, 646, 648, 673, 698, 841, 914, 915, 952, 987, 988, 1052, 1053]) -("Cannot", [306]) -("Char", [78, 109, 120]) -("Circular", [268]) -("ConstrAlt", [771, 800]) -("Corrected", [4]) -("EAp", [523]) -("ECase", [540]) -("EConstr", [520]) -("ELam", [526, 528, 530, 531]) -("ELet", [533]) -("ENum", [514]) -("EVar", [517]) -("End", [1104]) -("Eq", [390]) -("Error", [601, 621]) -("Fail", [125, 131, 324, 324, 364, 629, 631, 633, 635, 854, 854, 861, 861, 926, 927, 934, 935, 964, 964, 1000, 1000, 1012, 1012, 1073, 1073, 1090, 1090]) -("False", [81, 89, 90, 92, 131, 150, 1003]) -("File", [3]) -("Formatting", [13]) -("Int", [474, 475, 483, 484, 495, 498]) -("Just", [789]) -("Keeping", [378]) -("Merging", [329]) -("Message", [120, 258, 280, 318, 361, 512, 590, 651, 677, 678, 702, 706, 747, 842, 877, 916, 953, 989, 1054]) -("MyUtils", [10]) -("Naam", [44, 45, 52, 108, 120, 415, 415, 553, 587, 588, 615, 615, 647, 649, 674, 675, 699, 700, 762, 770, 772, 773, 782, 799, 801, 802, 815, 842, 876, 951, 986, 1022, 1051]) -("New", [438]) -("No", [125]) -("Nothing", [790]) -("Ok", [124, 130, 133, 262, 264, 321, 323, 363, 515, 628, 630, 632, 634, 717, 718, 749, 845, 855, 862, 863, 879, 928, 936, 937, 966, 967, 1002, 1014, 1015, 1075, 1092]) -("Projection", [627]) -("RHS", [654, 655, 656]) -("RHSs", [716]) -("Reply", [120, 258, 280, 318, 361, 512, 590, 651, 677, 678, 702, 706, 747, 842, 877, 916, 953, 989, 1054]) -("Representation", [155]) -("Scheme", [141, 385, 403, 404, 569, 776, 891, 974, 1034, 1085]) -("Subst", [43, 197, 210, 222, 223, 224, 231, 240, 255, 258, 278, 280, 316, 318, 333, 334, 346, 347, 347, 361, 361, 370, 399, 430, 703, 705, 745, 747, 842, 900]) -("Substitutions", [193]) -("T1", [681]) -("TArr", [87, 90, 103, 163, 189, 218, 218, 293, 296, 296, 566, 929, 969]) -("TCons", [84, 85, 86, 93, 102, 170, 177, 188, 216, 216, 290, 299, 299, 515, 515, 568, 739, 790, 794]) -("TDefCons", [793]) -("TDefExpr", [783]) -("TDefVar", [786]) -("TExpr", [44, 45, 52, 77, 108, 120, 159, 160, 161, 168, 175, 182, 199, 211, 212, 239, 257, 279, 279, 317, 317, 370, 370, 704, 746, 784, 842, 842, 889, 1023]) -("TVName", [183, 198, 238, 256, 383, 423, 443, 468, 649, 675, 700, 762, 770, 782, 799, 899, 899]) -("TVar", [83, 101, 187, 202, 203, 206, 214, 241, 241, 242, 244, 245, 261, 269, 282, 283, 290, 293, 568, 739, 789, 902, 929, 974]) -("TcTypeEnv", [117, 422, 431, 432, 509, 584, 644, 671, 696, 839, 874, 912, 949, 984, 1020, 1024, 1049]) -("The", [503]) -("Tk", [681]) -("True", [87, 88, 91, 95, 130, 150, 1093]) -("Type", [97, 267, 305, 548, 833, 868, 906, 943, 978, 1043]) -("TypeCheck5", [3, 7, 1104]) -("TypeDef", [508, 552, 583, 643, 650, 670, 676, 695, 701, 760, 814, 816, 838, 873, 911, 948, 983, 1048]) -("TypeEnv", [53, 120]) -("TypeInfo", [512, 590, 651, 677, 678, 702, 706, 877, 916, 953, 989, 1054]) -("TypeNameSupply", [118, 442, 450, 451, 458, 459, 459, 467, 510, 551, 553, 585, 645, 672, 697, 761, 840, 875, 887, 913, 950, 985, 1021, 1050]) -("TypeScheme", [382, 400, 401, 553, 773, 802, 888]) -("Undeclared", [820]) -("Unification", [251]) -("Utils", [9]) -("a", [4, 16, 17, 390, 390, 391, 392, 574, 630, 630, 632, 634, 636, 636, 637]) -("aFN", [66, 70]) -("abstractions", [943]) -("accordance", [806]) -("actual", [562]) -("ae1", [26, 27, 63, 63, 928, 929, 934, 936, 937]) -("ae2", [26, 27, 63, 63, 928, 929, 934, 936, 937]) -("al", [417, 418, 793, 794, 893, 894, 902, 902, 1034, 1036, 1038]) -("all", [241, 654, 655, 681]) -("allowable", [713]) -("als", [593, 607]) -("alternatives", [601]) -("alters", [543, 544]) -("alts", [67, 68, 540, 543]) -("an", [574, 594, 715]) -("and", [597, 627, 656, 681, 716]) -("ann", [20, 21]) -("annAlts", [30, 31]) -("annDefs", [28, 29]) -("annoTree", [133, 135]) -("annotatedE", [855, 856, 861, 862, 864, 966, 967, 1014, 1015]) -("annotatedEs", [862, 864]) -("annotatedRHSs", [720, 737]) -("applications", [906]) -("apply", [574, 712]) -("applyNtimes", [572, 575, 577]) -("arg", [574, 575, 576, 577]) -("arglists", [541, 544]) -("argument", [588, 596]) -("as", [597, 655]) -("associates", [558]) -("association", [594]) -("b", [16, 18, 83, 84, 85, 86, 93, 415, 415, 615, 615, 630, 632, 632, 634, 636, 637]) -("baseTypes", [122, 128]) -("be", [805]) -("big", [717]) -("bindings", [584, 716, 717]) -("binds", [347]) -("body", [70, 71]) -("bool", [85, 85, 150, 177]) -("builtInTypes", [127, 146, 149]) -("bvar", [958, 974, 1067, 1078, 1085, 1095]) -("bvars", [1062, 1067]) -("c", [17, 18, 25, 25, 62, 102, 520, 521, 630, 632, 634, 634, 636, 637, 637, 764, 793, 794]) -("cAltsCurried", [556, 566]) -("cAltsXLated", [566, 567]) -("cal", [555, 560, 567, 775, 776]) -("calculate", [654]) -("call", [655, 714]) -("calt", [807, 808]) -("calts", [806, 807, 809]) -("case", [548]) -("char", [86, 86]) -("check", [715]) -("checker", [3, 503]) -("checking", [548, 833, 868, 906, 943, 978, 1043]) -("chr", [83]) -("cl", [93, 95, 826, 827, 829]) -("cname", [775]) -("compute", [682]) -("concat", [66, 68, 95, 102, 143, 147, 350, 425, 727]) -("constrTypes", [145, 147]) -("constructor", [565, 583, 621]) -("constructors", [541, 543, 587, 598, 815, 820, 822]) -("contains", [822]) -("cparams", [775, 776, 807, 808]) -("cparamss", [805, 807, 809]) -("cs", [64, 593, 599, 604, 607, 818, 828]) -("current", [584]) -("decls", [1005, 1020, 1026, 1098]) -("deduced", [715]) -("definition", [594, 598, 682]) -("definitions", [583, 814]) -("dl", [65, 66, 533, 538]) -("downhill", [241]) -("e", [32, 32, 64, 64, 406, 406, 526, 527, 528, 529, 530, 531, 533, 535, 536, 846, 847, 955, 955, 991, 992, 1000, 1002, 1003, 1056, 1057, 1073, 1075, 1076, 1090, 1092, 1093]) -("e1", [523, 524, 749, 750, 751, 752, 755, 918, 918]) -("e2", [523, 524, 750, 751, 752, 753, 755, 918, 918]) -("e3", [752, 753]) -("each", [558, 655, 656, 710]) -("elem", [394, 406, 829]) -("else", [125, 204, 285, 339, 536, 602, 821, 823]) -("enScheme", [556, 569]) -("eqn", [323, 323, 324]) -("eqns", [320, 321]) -("error", [267, 305]) -("es", [535, 536, 538, 752, 753, 846, 847, 854, 855, 856, 991, 995, 1056, 1058]) -("expr", [34, 35, 122, 128]) -("expression", [586, 714, 716, 822]) -("expressions", [155, 548, 589, 597, 833, 978, 1043]) -("exprs", [541, 544]) -("f", [20, 21, 27, 27, 29, 31, 32, 35, 38, 133, 133, 139, 141, 445, 453, 453, 461, 462, 787, 789, 790]) -("f2", [461, 461, 462]) -("fail", [266, 304, 600, 620, 820, 822]) -("failed", [97]) -("final", [718, 719, 735]) -("finalConstrTypes", [128, 139, 147]) -("finalNameSupply", [556, 572]) -("finalNs", [128, 145]) -("finalType", [879, 879, 882, 937, 937, 939, 967, 967, 969]) -("first", [608, 740, 829, 1098, 1100]) -("foldr", [188, 321, 566]) -("for", [4, 654, 655, 656, 681, 681, 710]) -("from", [716]) -("ftvs", [826, 827]) -("fullEnv", [124, 139, 143]) -("fullEnvWords", [124, 143]) -("func", [575, 577, 577]) -("function", [574]) -("functions", [565, 627]) -("g", [662, 663]) -("gamma", [425, 425, 434, 434, 514, 517, 518, 520, 521, 523, 524, 526, 527, 528, 529, 530, 531, 533, 535, 536, 540, 541, 593, 602, 653, 657, 663, 680, 684, 696, 708, 722, 844, 846, 847, 847, 854, 855, 856, 879, 881, 918, 918, 955, 955, 958, 958, 991, 992, 995, 1000, 1002, 1003, 1005, 1005, 1006, 1006, 1026, 1026, 1029, 1056, 1057, 1058, 1073, 1075, 1076, 1080, 1080, 1090, 1092, 1093, 1097, 1097, 1098, 1098]) -("gammas", [654]) -("gather", [655, 716]) -("gathered", [717]) -("general", [713]) -("get", [594, 681, 712, 714]) -("going", [270]) -("good", [123, 130, 131]) -("gs", [662, 663]) -("head", [374, 735, 823]) -("hence", [681]) -("here", [815]) -("if", [123, 202, 283, 337, 534, 599, 819, 821]) -("import", [8, 9, 10]) -("in", [182, 185, 185, 187, 188, 188, 189, 189, 189, 263, 267, 305, 385, 559, 569, 594, 598, 601, 601, 621, 622, 682, 805, 820, 1037]) -("input", [713, 715]) -("instance", [715]) -("int", [84, 84, 170, 515, 515]) -("into", [711]) -("is", [715]) -("k", [417, 418, 418, 618, 619, 621]) -("ks", [618, 623]) -("l", [187, 187, 188, 188, 189, 189]) -("lambda", [943]) -("lead", [241]) -("length", [572, 599, 599, 819, 821]) -("let", [978]) -("letrec", [1043]) -("lhs", [729, 731, 731, 733]) -("list", [815]) -("lists", [411, 588, 596, 805, 833]) -("ljustify", [112]) -("lookUpResult", [202, 204, 206]) -("lookup", [83, 96, 97, 98, 99]) -("m", [3, 324, 324, 364, 365, 629, 629, 631, 631, 633, 633, 635, 635, 854, 854, 861, 861, 926, 927, 934, 935, 964, 964, 1000, 1000, 1012, 1012, 1073, 1073, 1090, 1090, 1104]) -("mainExpr", [28, 29]) -("make", [710]) -("map", [29, 31, 66, 68, 95, 102, 139, 143, 216, 354, 355, 356, 425, 563, 567, 568, 608, 687, 688, 735, 737, 738, 739, 740, 776, 794, 829, 1028, 1034, 1067, 1078, 1095, 1098, 1100]) -("map2nd", [556, 566, 567, 902]) -("mapAccuml", [146]) -("mapAnnAlt", [31, 37]) -("mapAnnDefn", [29, 34]) -("mapAnnExpr", [21, 23, 24, 25, 26, 28, 30, 32]) -("me", [65, 66]) -("merge", [607, 609, 711]) -("missing", [601]) -("mixed", [822]) -("module", [7]) -("most", [713]) -("must", [805]) -("n", [24, 24, 61, 112, 267, 267, 268, 270, 270, 273, 305, 305, 306, 308, 308, 310, 406, 406, 406, 478, 478, 478, 487, 488, 489, 489, 489, 490, 491, 491, 514, 515, 574, 575, 576, 577, 685, 685, 687, 688, 689, 703, 704, 709, 709, 727, 786, 790, 791]) -("naam", [34, 35, 37, 38, 70, 71, 111, 112, 141, 141]) -("name", [97, 442, 445, 470, 571, 585, 920, 959]) -("nameMap", [786, 791, 793, 794]) -("nbvs", [1057, 1058, 1062, 1073, 1075, 1076, 1078, 1079, 1079, 1090, 1092, 1095, 1096, 1096, 1098, 1100]) -("new", [347, 558, 716]) -("newBinds", [337, 339, 341]) -("newSub", [753, 755]) -("newTVs", [560, 563, 567, 602, 605, 653, 657, 659, 680, 684, 700, 708, 738]) -("newUnifiers", [355, 356]) -("newUnifiersChecked", [350, 351, 356]) -("no", [418]) -("node", [20, 21, 58, 58]) -("nodeType", [58]) -("non", [247, 247]) -("not", [394, 406, 534]) -("notArrow", [93, 94]) -("notElem", [263]) -("note", [805]) -("ns", [122, 146, 445, 445, 470, 470, 470, 478, 478, 479, 487, 488, 491, 491, 492, 514, 517, 518, 520, 521, 523, 524, 526, 527, 528, 529, 530, 531, 533, 535, 536, 540, 541, 555, 560, 572, 593, 606, 653, 665, 680, 684, 697, 708, 722, 764, 764, 844, 846, 849, 854, 855, 856, 879, 882, 891, 893, 918, 918, 920, 921, 921, 955, 955, 957, 957, 959, 991, 994, 1000, 1002, 1007, 1026, 1028, 1034, 1036, 1056, 1060, 1060, 1061, 1067, 1067, 1073, 1075, 1076, 1090, 1092, 1099]) -("ns0", [847, 849, 992, 994, 1005, 1007, 1057, 1060, 1098, 1099]) -("ns1", [602, 606, 660, 665, 847, 849, 994, 995, 1003, 1007, 1058, 1061, 1093, 1099]) -("ns2", [605, 606, 657, 665, 1061, 1062]) -("nsl", [661, 662, 664]) -("nsl1", [663, 664]) -("nsl2", [663, 664]) -("nub", [100, 353, 569, 599, 825, 1037]) -("of", [13, 155, 329, 347, 378, 565, 594, 598, 683, 710, 714, 715, 815, 833]) -("og", [373, 374]) -("ogs", [373, 374]) -("oldGroups", [351, 354, 355]) -("oldVars", [351, 353, 354]) -("olds", [347]) -("on", [656]) -("one", [711]) -("ordered", [805]) -("otherwise", [99, 265, 479, 490, 492, 577]) -("p", [290, 291, 293, 294]) -("pair", [347]) -("panic", [97, 365, 418, 629, 631, 633, 635]) -("param", [805]) -("pars", [37, 38]) -("pass", [595, 656]) -("phi", [47, 47, 201, 204, 206, 214, 214, 216, 216, 218, 218, 218, 260, 262, 264, 282, 284, 285, 287, 288, 290, 291, 293, 294, 296, 297, 299, 301, 303, 320, 321, 323, 323, 336, 341, 349, 353, 354, 403, 404, 406, 406, 434, 434, 685, 685, 687, 689, 703, 705, 709, 709, 718, 722, 723, 723, 724, 725, 727, 727, 727, 727, 729, 731, 733, 733, 733, 735, 855, 856, 856, 861, 862, 863, 891, 894, 928, 929, 936, 937, 939, 966, 967, 969, 1002, 1003, 1006, 1012, 1014, 1014, 1015, 1015, 1075, 1076, 1079, 1080, 1092, 1093, 1096, 1097]) -("phit", [284, 285, 288]) -("phitvn", [283, 285, 287]) -("poly", [558]) -("pretty", [81, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 95]) -("program", [267, 305, 601, 621]) -("psi", [862, 863, 863]) -("q", [290, 291, 293, 294]) -("r", [363, 363, 662, 663]) -("reOals", [602, 609, 653, 657, 659, 680, 684, 699, 708, 720]) -("reOres", [602, 609, 653, 660]) -("recFlag", [28, 29, 1012, 1014, 1015]) -("recursive", [533, 534]) -("reflect", [597]) -("reorder", [596]) -("res", [593, 607]) -("resExpr", [37, 38]) -("result", [683, 717, 787, 791]) -("resulting", [589, 597]) -("results", [13]) -("return", [717]) -("reverse", [731]) -("revised", [571]) -("rf", [65]) -("rhs", [685, 689, 705, 709, 727]) -("rhsAnnExprs", [1002, 1003, 1012, 1014, 1015, 1075, 1076, 1090, 1092, 1093]) -("rhsGammas", [659, 660]) -("rhsTc1", [660, 661, 662, 663]) -("rhsTcs", [657, 660, 680, 684, 687, 688, 702, 708, 735, 737]) -("rhsTypes", [992, 995]) -("rootEnv", [137, 139]) -("rootSubst", [133, 135]) -("rootTree", [124, 135, 137]) -("rootType", [133]) -("rs", [662, 663]) -("rubbish", [627]) -("s", [445, 453, 453, 461, 654, 712, 719, 722, 723, 723, 724, 724, 725, 725, 727, 731]) -("sTau", [722, 723, 724, 725]) -("sTree", [722, 723, 724, 725]) -("scheme", [382, 385, 399, 403, 425, 434, 881, 882]) -("schemes", [1026, 1028]) -("scvs", [385, 385, 403, 404, 404, 406, 406, 891, 893, 1036, 1037]) -("second", [68, 68, 563, 738, 1034]) -("sequence", [467, 470, 470, 598, 764, 893, 1036, 1067]) -("sigmas", [656]) -("signature", [712]) -("similar", [627]) -("so", [597, 655]) -("source", [267, 305, 601, 621]) -("st", [434, 434]) -("stvs", [555, 560]) -("sub", [197, 201, 214, 287, 749, 749, 750, 751, 752, 755, 939, 969]) -("sub1", [226, 226]) -("sub2", [226, 226]) -("subnames", [1100]) -("subst", [231, 233, 355, 515, 689, 731, 845, 879, 894, 899, 902, 1038]) -("substitution", [268, 712, 717]) -("substitutions", [241, 329, 710, 711]) -("such", [418]) -("supply", [571, 585]) -("sw", [67, 68, 593, 602, 653, 657, 680, 684, 698, 708, 722]) -("switch", [540, 541, 586, 714, 716]) -("switchExpr", [30, 31]) -("t", [80, 81, 98, 98, 100, 101, 101, 141, 141, 185, 185, 260, 261, 263, 264, 272, 282, 288, 385, 385, 403, 404, 764, 855, 856, 861, 862, 863, 891, 891, 966, 969, 1014, 1015, 1015, 1034, 1034, 1037, 1038, 1038, 1085, 1085]) -("t1", [87, 88, 90, 91, 103, 103, 163, 163, 189, 189, 218, 218, 296, 296, 297, 297, 303, 307, 928, 929]) -("t2", [87, 89, 90, 92, 103, 103, 163, 163, 189, 189, 218, 218, 296, 296, 297, 297, 303, 309, 928, 929]) -("t2e", [56, 58, 58, 60, 61, 62, 63, 63, 63, 64, 64, 65, 66, 67, 68, 68, 71]) -("tVs", [563, 568, 572, 738, 739]) -("tau", [685, 688, 689, 704, 709, 718, 719, 724, 729, 731, 731, 735]) -("tc", [127, 508, 514, 517, 520, 523, 526, 527, 528, 530, 533, 540, 655, 663, 714, 722, 847, 955, 1003, 1093]) -("tcAdd", [1005, 1020, 1026, 1098]) -("tcAl", [894, 899, 902, 1038]) -("tcApply", [197, 201, 214, 287, 939, 969]) -("tcArrow", [159, 163]) -("tcBar", [385, 390, 394, 1037]) -("tcBool", [175, 177]) -("tcCharVal", [415, 417, 418, 881]) -("tcCheck", [117, 122]) -("tcCheckUnifier", [356, 361, 363, 364, 365]) -("tcConstrTypeSchemes", [146, 551, 555]) -("tcDeOkSel", [629]) -("tcDeOksel", [628, 629, 689, 733, 755]) -("tcDelta", [238, 242, 247, 264]) -("tcDeplete", [450, 453, 470, 572, 921, 957]) -("tcExclude", [404, 406]) -("tcExtend", [255, 260, 284]) -("tcGenbar", [1028, 1034]) -("tcGetAllGammas", [659, 799, 804, 807, 809]) -("tcGetGammaN", [770, 775, 808]) -("tcGetTypeDef", [604, 814, 818]) -("tcId", [231, 233, 355, 515, 689, 731, 845, 879]) -("tcInt", [168, 170]) -("tcK31sel", [636, 739]) -("tcK33", [608, 637, 659, 740]) -("tcMapAnnExpr", [16, 20, 27, 27, 29, 31, 32, 35, 38, 47]) -("tcMergeSubs", [333, 336, 339, 727, 733]) -("tcMergeSubsMain", [341, 346, 349]) -("tcNSDouble", [462, 483, 486, 487, 491, 492]) -("tcNSSucc", [453, 461, 474, 477, 478, 479, 492]) -("tcNSdlimit", [489, 489, 495, 496, 499, 499]) -("tcNSslimit", [478, 498, 499]) -("tcName", [467, 470, 470, 764, 893, 1036, 1067]) -("tcNew", [958, 974, 1062, 1067, 1067]) -("tcNewTypeVars", [560, 605, 760, 764]) -("tcNewinstance", [882, 887, 891]) -("tcNext", [442, 445, 470, 920, 959]) -("tcOk13sel", [630, 631, 631, 687, 723]) -("tcOk23sel", [632, 633, 633, 688, 724, 735]) -("tcOk33sel", [634, 635, 635, 725, 737]) -("tcOld", [1078, 1085, 1095]) -("tcOldUnified", [351, 370, 372, 373, 374]) -("tcPretty", [108, 111, 143]) -("tcReorder", [609, 615, 617, 618, 623]) -("tcResult", [123, 127, 133]) -("tcScomp", [222, 226, 264, 863, 1015]) -("tcShowtExpr", [77, 80, 97, 113, 269, 272, 307, 309]) -("tcSplit", [458, 461, 606, 664, 665, 849, 994, 1007, 1060, 1061, 1099]) -("tcSub", [47, 204, 210, 214, 216, 216, 218, 218, 218, 288, 374, 399, 403, 404, 430, 434, 434, 729, 735, 856, 863, 891, 1006, 1038, 1079, 1080, 1096, 1097]) -("tcSubstAnnTree", [43, 47, 135]) -("tcTDefSubst", [567, 776, 782, 786, 793, 794]) -("tcTreeToEnv", [52, 55, 137]) -("tcTvars", [182, 185, 263, 385, 569, 1037]) -("tcUnify", [278, 282, 285, 290, 291, 293, 294, 296, 299, 303, 323, 731, 751, 755, 929]) -("tcUnifySet", [355, 689, 745, 749, 750, 752, 753]) -("tcUnifyl", [297, 301, 316, 320, 1076]) -("tcUnknowns", [382, 385, 422, 425, 425, 1029]) -("tcap", [524, 911, 918]) -("tcap1", [918, 926, 928]) -("tcap2", [929, 934, 936]) -("tccase", [541, 583, 593]) -("tccase1", [602, 643, 653]) -("tccase2", [657, 670, 680]) -("tccase3", [684, 695, 708]) -("tcl", [838, 844, 846, 856, 918, 995, 1058]) -("tcl1", [847, 854, 855]) -("tcl2", [856, 861, 862]) -("tclambda", [529, 531, 948, 955]) -("tclambda1", [955, 964, 966]) -("tclet", [535, 983, 991]) -("tclet1", [992, 1000, 1002]) -("tclet2", [1003, 1012, 1014, 1093]) -("tcletrec", [536, 1048, 1056]) -("tcletrec1", [1057, 1073, 1075]) -("tcletrec2", [1076, 1090, 1092]) -("tcn", [216, 216, 299, 299, 300, 300]) -("tcvar", [518, 521, 873, 879]) -("tdCNames", [599, 608, 609, 720, 740]) -("tdInUse", [602, 604, 605, 608, 653, 657, 659, 680, 684, 701, 708, 739, 740]) -("tdSignature", [566, 568, 729, 739]) -("tdefs", [122, 127, 146]) -("tdefset", [819, 821, 823, 825]) -("tds", [514, 517, 518, 520, 521, 523, 524, 526, 527, 528, 529, 530, 531, 533, 535, 536, 540, 541, 593, 602, 604, 653, 657, 663, 680, 684, 695, 708, 722, 818, 827, 844, 846, 847, 847, 854, 855, 856, 879, 918, 918, 955, 955, 991, 992, 995, 1000, 1002, 1003, 1056, 1057, 1058, 1073, 1075, 1076, 1090, 1092, 1093]) -("te", [422, 425, 430, 434, 856, 1006, 1029, 1079, 1080, 1096, 1097]) -("texp", [569, 569, 569]) -("texpr", [247, 247]) -("that", [715]) -("the", [559, 562, 565, 565, 571, 594, 596, 597, 598, 654, 654, 655, 681, 681, 682, 682, 683, 710, 711, 712, 712, 712, 714, 714, 715, 716, 716, 717, 717]) -("themselves", [562]) -("then", [124, 203, 284, 338, 535, 600, 656, 820, 822]) -("therein", [595]) -("these", [731]) -("this", [715]) -("tijp", [70, 71]) -("times", [574]) -("tipe", [111, 113]) -("tn", [555, 560, 568]) -("tname", [826, 827]) -("to", [270, 574, 595, 597, 655, 681, 685, 685, 687, 688, 689, 703, 704, 709, 709, 712, 712, 714, 727, 894, 899, 902, 1038]) -("track", [378]) -("tree", [47, 47, 55, 56, 719, 725]) -("ts", [98, 99, 102, 102, 188, 188, 216, 216, 299, 299, 301, 301, 862, 863, 1002, 1005, 1026, 1028, 1075, 1076, 1076, 1078, 1095, 1098]) -("tvars", [185, 187, 188, 188, 189, 189, 189, 710]) -("tvdict", [83, 100, 100, 101, 102, 102, 103, 103, 103]) -("tvl", [775, 776, 804, 807, 808, 809]) -("tvn", [201, 202, 203, 206, 206, 214, 214, 242, 243, 244, 244, 245, 245, 247, 247, 260, 261, 263, 264, 269, 282, 283, 284, 287, 789, 789, 918, 920, 926, 928, 929, 929, 934, 936, 939, 955, 958, 959, 964, 966, 969, 974, 974]) -("tvn2", [242, 243, 244, 244, 245, 245]) -("tvname", [83, 83, 96, 98, 98, 99]) -("type", [3, 47, 125, 155, 204, 210, 214, 216, 216, 218, 218, 218, 288, 374, 404, 503, 558, 559, 562, 583, 584, 594, 595, 682, 682, 713, 714, 715, 717, 729, 735, 814, 863, 891, 1038]) -("typedef", [712]) -("types", [378, 565, 656, 683]) -("u", [373, 374]) -("undeclared", [621]) -("unified", [347]) -("unifiedOlds", [338, 339, 341]) -("unifier", [681, 683]) -("unifiers", [681]) -("unify", [306, 321, 323, 324]) -("unknown", [710]) -("unknowns", [1028, 1029, 1034, 1037]) -("unzip2", [538, 543, 544, 609]) -("uol", [617, 618, 619, 623]) -("up", [710]) -("us", [373, 374]) -("use", [594, 820]) -("used", [815]) -("usedc", [828, 829]) -("utDomain", [353]) -("utLookup", [791]) -("utLookupAll", [354]) -("utLookupDef", [206, 418, 619]) -("utRange", [425]) -("v", [23, 23, 60]) -("v5", [3]) -("var", [247, 247, 558]) -("variable", [418]) -("variables", [438, 562, 595, 682, 868]) -("vars", [558, 595]) -("version", [4]) -("vl", [764, 764]) -("vs", [32, 32, 141]) -("where", [7, 22, 57, 82, 126, 133, 140, 186, 205, 286, 322, 340, 352, 405, 462, 489, 537, 542, 557, 603, 658, 664, 686, 721, 754, 788, 824, 848, 880, 892, 919, 938, 956, 968, 993, 1004, 1027, 1035, 1059, 1077, 1094]) -("with", [308, 558, 806]) -("x", [130, 133, 133, 187, 187, 394, 394, 394, 434, 434, 517, 518, 528, 529, 530, 531, 628, 628, 879, 879, 881, 955, 955, 958, 964, 966, 967, 974, 974, 1085]) -("x2", [131]) -("xs", [394, 394, 530, 531, 535, 536, 538, 991, 992, 1000, 1002, 1003, 1005, 1012, 1014, 1015, 1026, 1026, 1056, 1057, 1062, 1067, 1067, 1073, 1075, 1076, 1090, 1092, 1093]) -("y", [188, 530, 531]) -("ys", [394, 394]) -("zip", [301, 351, 607, 607, 720, 720, 764, 776, 893, 1015, 1026, 1036, 1067, 1076]) +("A",[3]) +("AAp",[26,27,63,937]) +("ACase",[30,31,67,719]) +("AConstr",[25,25,62]) +("ALam",[32,32,64,967]) +("ALet",[28,29,65,1015]) +("AList",[415,553,649,675,700,762,770,773,782,799,802,899]) +("ANum",[24,24,61,515]) +("AVar",[23,23,60,879]) +("Also",[596,682]) +("AnnExpr",[17,18,44,45,52,120,842]) +("Association",[411]) +("AtomicProgram",[119]) +("BaseDefs",[8]) +("Big",[718,733,735]) +("CASE",[601,622,822]) +("CExpr",[511,586,589,646,648,673,698,841,914,915,952,987,988,1052,1053]) +("Cannot",[306]) +("Char",[78,109,120]) +("Circular",[268]) +("ConstrAlt",[771,800]) +("Corrected",[4]) +("EAp",[523]) +("ECase",[540]) +("EConstr",[520]) +("ELam",[526,528,530,531]) +("ELet",[533]) +("ENum",[514]) +("EVar",[517]) +("End",[1104]) +("Eq",[390]) +("Error",[601,621]) +("Fail",[125,131,324,324,364,629,631,633,635,854,854,861,861,926,927,934,935,964,964,1000,1000,1012,1012,1073,1073,1090,1090]) +("False",[81,89,90,92,131,150,1003]) +("File",[3]) +("Formatting",[13]) +("Int",[474,475,483,484,495,498]) +("Just",[789]) +("Keeping",[378]) +("Merging",[329]) +("Message",[120,258,280,318,361,512,590,651,677,678,702,706,747,842,877,916,953,989,1054]) +("MyUtils",[10]) +("Naam",[44,45,52,108,120,415,415,553,587,588,615,615,647,649,674,675,699,700,762,770,772,773,782,799,801,802,815,842,876,951,986,1022,1051]) +("New",[438]) +("No",[125]) +("Nothing",[790]) +("Ok",[124,130,133,262,264,321,323,363,515,628,630,632,634,717,718,749,845,855,862,863,879,928,936,937,966,967,1002,1014,1015,1075,1092]) +("Projection",[627]) +("RHS",[654,655,656]) +("RHSs",[716]) +("Reply",[120,258,280,318,361,512,590,651,677,678,702,706,747,842,877,916,953,989,1054]) +("Representation",[155]) +("Scheme",[141,385,403,404,569,776,891,974,1034,1085]) +("Subst",[43,197,210,222,223,224,231,240,255,258,278,280,316,318,333,334,346,347,347,361,361,370,399,430,703,705,745,747,842,900]) +("Substitutions",[193]) +("T1",[681]) +("TArr",[87,90,103,163,189,218,218,293,296,296,566,929,969]) +("TCons",[84,85,86,93,102,170,177,188,216,216,290,299,299,515,515,568,739,790,794]) +("TDefCons",[793]) +("TDefExpr",[783]) +("TDefVar",[786]) +("TExpr",[44,45,52,77,108,120,159,160,161,168,175,182,199,211,212,239,257,279,279,317,317,370,370,704,746,784,842,842,889,1023]) +("TVName",[183,198,238,256,383,423,443,468,649,675,700,762,770,782,799,899,899]) +("TVar",[83,101,187,202,203,206,214,241,241,242,244,245,261,269,282,283,290,293,568,739,789,902,929,974]) +("TcTypeEnv",[117,422,431,432,509,584,644,671,696,839,874,912,949,984,1020,1024,1049]) +("The",[503]) +("Tk",[681]) +("True",[87,88,91,95,130,150,1093]) +("Type",[97,267,305,548,833,868,906,943,978,1043]) +("TypeCheck5",[3,7,1104]) +("TypeDef",[508,552,583,643,650,670,676,695,701,760,814,816,838,873,911,948,983,1048]) +("TypeEnv",[53,120]) +("TypeInfo",[512,590,651,677,678,702,706,877,916,953,989,1054]) +("TypeNameSupply",[118,442,450,451,458,459,459,467,510,551,553,585,645,672,697,761,840,875,887,913,950,985,1021,1050]) +("TypeScheme",[382,400,401,553,773,802,888]) +("Undeclared",[820]) +("Unification",[251]) +("Utils",[9]) +("a",[4,16,17,390,390,391,392,574,630,630,632,634,636,636,637]) +("aFN",[66,70]) +("abstractions",[943]) +("accordance",[806]) +("actual",[562]) +("ae1",[26,27,63,63,928,929,934,936,937]) +("ae2",[26,27,63,63,928,929,934,936,937]) +("al",[417,418,793,794,893,894,902,902,1034,1036,1038]) +("all",[241,654,655,681]) +("allowable",[713]) +("als",[593,607]) +("alternatives",[601]) +("alters",[543,544]) +("alts",[67,68,540,543]) +("an",[574,594,715]) +("and",[597,627,656,681,716]) +("ann",[20,21]) +("annAlts",[30,31]) +("annDefs",[28,29]) +("annoTree",[133,135]) +("annotatedE",[855,856,861,862,864,966,967,1014,1015]) +("annotatedEs",[862,864]) +("annotatedRHSs",[720,737]) +("applications",[906]) +("apply",[574,712]) +("applyNtimes",[572,575,577]) +("arg",[574,575,576,577]) +("arglists",[541,544]) +("argument",[588,596]) +("as",[597,655]) +("associates",[558]) +("association",[594]) +("b",[16,18,83,84,85,86,93,415,415,615,615,630,632,632,634,636,637]) +("baseTypes",[122,128]) +("be",[805]) +("big",[717]) +("bindings",[584,716,717]) +("binds",[347]) +("body",[70,71]) +("bool",[85,85,150,177]) +("builtInTypes",[127,146,149]) +("bvar",[958,974,1067,1078,1085,1095]) +("bvars",[1062,1067]) +("c",[17,18,25,25,62,102,520,521,630,632,634,634,636,637,637,764,793,794]) +("cAltsCurried",[556,566]) +("cAltsXLated",[566,567]) +("cal",[555,560,567,775,776]) +("calculate",[654]) +("call",[655,714]) +("calt",[807,808]) +("calts",[806,807,809]) +("case",[548]) +("char",[86,86]) +("check",[715]) +("checker",[3,503]) +("checking",[548,833,868,906,943,978,1043]) +("chr",[83]) +("cl",[93,95,826,827,829]) +("cname",[775]) +("compute",[682]) +("concat",[66,68,95,102,143,147,350,425,727]) +("constrTypes",[145,147]) +("constructor",[565,583,621]) +("constructors",[541,543,587,598,815,820,822]) +("contains",[822]) +("cparams",[775,776,807,808]) +("cparamss",[805,807,809]) +("cs",[64,593,599,604,607,818,828]) +("current",[584]) +("decls",[1005,1020,1026,1098]) +("deduced",[715]) +("definition",[594,598,682]) +("definitions",[583,814]) +("dl",[65,66,533,538]) +("downhill",[241]) +("e",[32,32,64,64,406,406,526,527,528,529,530,531,533,535,536,846,847,955,955,991,992,1000,1002,1003,1056,1057,1073,1075,1076,1090,1092,1093]) +("e1",[523,524,749,750,751,752,755,918,918]) +("e2",[523,524,750,751,752,753,755,918,918]) +("e3",[752,753]) +("each",[558,655,656,710]) +("elem",[394,406,829]) +("else",[125,204,285,339,536,602,821,823]) +("enScheme",[556,569]) +("eqn",[323,323,324]) +("eqns",[320,321]) +("error",[267,305]) +("es",[535,536,538,752,753,846,847,854,855,856,991,995,1056,1058]) +("expr",[34,35,122,128]) +("expression",[586,714,716,822]) +("expressions",[155,548,589,597,833,978,1043]) +("exprs",[541,544]) +("f",[20,21,27,27,29,31,32,35,38,133,133,139,141,445,453,453,461,462,787,789,790]) +("f2",[461,461,462]) +("fail",[266,304,600,620,820,822]) +("failed",[97]) +("final",[718,719,735]) +("finalConstrTypes",[128,139,147]) +("finalNameSupply",[556,572]) +("finalNs",[128,145]) +("finalType",[879,879,882,937,937,939,967,967,969]) +("first",[608,740,829,1098,1100]) +("foldr",[188,321,566]) +("for",[4,654,655,656,681,681,710]) +("from",[716]) +("ftvs",[826,827]) +("fullEnv",[124,139,143]) +("fullEnvWords",[124,143]) +("func",[575,577,577]) +("function",[574]) +("functions",[565,627]) +("g",[662,663]) +("gamma",[425,425,434,434,514,517,518,520,521,523,524,526,527,528,529,530,531,533,535,536,540,541,593,602,653,657,663,680,684,696,708,722,844,846,847,847,854,855,856,879,881,918,918,955,955,958,958,991,992,995,1000,1002,1003,1005,1005,1006,1006,1026,1026,1029,1056,1057,1058,1073,1075,1076,1080,1080,1090,1092,1093,1097,1097,1098,1098]) +("gammas",[654]) +("gather",[655,716]) +("gathered",[717]) +("general",[713]) +("get",[594,681,712,714]) +("going",[270]) +("good",[123,130,131]) +("gs",[662,663]) +("head",[374,735,823]) +("hence",[681]) +("here",[815]) +("if",[123,202,283,337,534,599,819,821]) +("import",[8,9,10]) +("in",[182,185,185,187,188,188,189,189,189,263,267,305,385,559,569,594,598,601,601,621,622,682,805,820,1037]) +("input",[713,715]) +("instance",[715]) +("int",[84,84,170,515,515]) +("into",[711]) +("is",[715]) +("k",[417,418,418,618,619,621]) +("ks",[618,623]) +("l",[187,187,188,188,189,189]) +("lambda",[943]) +("lead",[241]) +("length",[572,599,599,819,821]) +("let",[978]) +("letrec",[1043]) +("lhs",[729,731,731,733]) +("list",[815]) +("lists",[411,588,596,805,833]) +("ljustify",[112]) +("lookUpResult",[202,204,206]) +("lookup",[83,96,97,98,99]) +("m",[3,324,324,364,365,629,629,631,631,633,633,635,635,854,854,861,861,926,927,934,935,964,964,1000,1000,1012,1012,1073,1073,1090,1090,1104]) +("mainExpr",[28,29]) +("make",[710]) +("map",[29,31,66,68,95,102,139,143,216,354,355,356,425,563,567,568,608,687,688,735,737,738,739,740,776,794,829,1028,1034,1067,1078,1095,1098,1100]) +("map2nd",[556,566,567,902]) +("mapAccuml",[146]) +("mapAnnAlt",[31,37]) +("mapAnnDefn",[29,34]) +("mapAnnExpr",[21,23,24,25,26,28,30,32]) +("me",[65,66]) +("merge",[607,609,711]) +("missing",[601]) +("mixed",[822]) +("module",[7]) +("most",[713]) +("must",[805]) +("n",[24,24,61,112,267,267,268,270,270,273,305,305,306,308,308,310,406,406,406,478,478,478,487,488,489,489,489,490,491,491,514,515,574,575,576,577,685,685,687,688,689,703,704,709,709,727,786,790,791]) +("naam",[34,35,37,38,70,71,111,112,141,141]) +("name",[97,442,445,470,571,585,920,959]) +("nameMap",[786,791,793,794]) +("nbvs",[1057,1058,1062,1073,1075,1076,1078,1079,1079,1090,1092,1095,1096,1096,1098,1100]) +("new",[347,558,716]) +("newBinds",[337,339,341]) +("newSub",[753,755]) +("newTVs",[560,563,567,602,605,653,657,659,680,684,700,708,738]) +("newUnifiers",[355,356]) +("newUnifiersChecked",[350,351,356]) +("no",[418]) +("node",[20,21,58,58]) +("nodeType",[58]) +("non",[247,247]) +("not",[394,406,534]) +("notArrow",[93,94]) +("notElem",[263]) +("note",[805]) +("ns",[122,146,445,445,470,470,470,478,478,479,487,488,491,491,492,514,517,518,520,521,523,524,526,527,528,529,530,531,533,535,536,540,541,555,560,572,593,606,653,665,680,684,697,708,722,764,764,844,846,849,854,855,856,879,882,891,893,918,918,920,921,921,955,955,957,957,959,991,994,1000,1002,1007,1026,1028,1034,1036,1056,1060,1060,1061,1067,1067,1073,1075,1076,1090,1092,1099]) +("ns0",[847,849,992,994,1005,1007,1057,1060,1098,1099]) +("ns1",[602,606,660,665,847,849,994,995,1003,1007,1058,1061,1093,1099]) +("ns2",[605,606,657,665,1061,1062]) +("nsl",[661,662,664]) +("nsl1",[663,664]) +("nsl2",[663,664]) +("nub",[100,353,569,599,825,1037]) +("of",[13,155,329,347,378,565,594,598,683,710,714,715,815,833]) +("og",[373,374]) +("ogs",[373,374]) +("oldGroups",[351,354,355]) +("oldVars",[351,353,354]) +("olds",[347]) +("on",[656]) +("one",[711]) +("ordered",[805]) +("otherwise",[99,265,479,490,492,577]) +("p",[290,291,293,294]) +("pair",[347]) +("panic",[97,365,418,629,631,633,635]) +("param",[805]) +("pars",[37,38]) +("pass",[595,656]) +("phi",[47,47,201,204,206,214,214,216,216,218,218,218,260,262,264,282,284,285,287,288,290,291,293,294,296,297,299,301,303,320,321,323,323,336,341,349,353,354,403,404,406,406,434,434,685,685,687,689,703,705,709,709,718,722,723,723,724,725,727,727,727,727,729,731,733,733,733,735,855,856,856,861,862,863,891,894,928,929,936,937,939,966,967,969,1002,1003,1006,1012,1014,1014,1015,1015,1075,1076,1079,1080,1092,1093,1096,1097]) +("phit",[284,285,288]) +("phitvn",[283,285,287]) +("poly",[558]) +("pretty",[81,83,84,85,86,87,88,89,90,91,92,93,95]) +("program",[267,305,601,621]) +("psi",[862,863,863]) +("q",[290,291,293,294]) +("r",[363,363,662,663]) +("reOals",[602,609,653,657,659,680,684,699,708,720]) +("reOres",[602,609,653,660]) +("recFlag",[28,29,1012,1014,1015]) +("recursive",[533,534]) +("reflect",[597]) +("reorder",[596]) +("res",[593,607]) +("resExpr",[37,38]) +("result",[683,717,787,791]) +("resulting",[589,597]) +("results",[13]) +("return",[717]) +("reverse",[731]) +("revised",[571]) +("rf",[65]) +("rhs",[685,689,705,709,727]) +("rhsAnnExprs",[1002,1003,1012,1014,1015,1075,1076,1090,1092,1093]) +("rhsGammas",[659,660]) +("rhsTc1",[660,661,662,663]) +("rhsTcs",[657,660,680,684,687,688,702,708,735,737]) +("rhsTypes",[992,995]) +("rootEnv",[137,139]) +("rootSubst",[133,135]) +("rootTree",[124,135,137]) +("rootType",[133]) +("rs",[662,663]) +("rubbish",[627]) +("s",[445,453,453,461,654,712,719,722,723,723,724,724,725,725,727,731]) +("sTau",[722,723,724,725]) +("sTree",[722,723,724,725]) +("scheme",[382,385,399,403,425,434,881,882]) +("schemes",[1026,1028]) +("scvs",[385,385,403,404,404,406,406,891,893,1036,1037]) +("second",[68,68,563,738,1034]) +("sequence",[467,470,470,598,764,893,1036,1067]) +("sigmas",[656]) +("signature",[712]) +("similar",[627]) +("so",[597,655]) +("source",[267,305,601,621]) +("st",[434,434]) +("stvs",[555,560]) +("sub",[197,201,214,287,749,749,750,751,752,755,939,969]) +("sub1",[226,226]) +("sub2",[226,226]) +("subnames",[1100]) +("subst",[231,233,355,515,689,731,845,879,894,899,902,1038]) +("substitution",[268,712,717]) +("substitutions",[241,329,710,711]) +("such",[418]) +("supply",[571,585]) +("sw",[67,68,593,602,653,657,680,684,698,708,722]) +("switch",[540,541,586,714,716]) +("switchExpr",[30,31]) +("t",[80,81,98,98,100,101,101,141,141,185,185,260,261,263,264,272,282,288,385,385,403,404,764,855,856,861,862,863,891,891,966,969,1014,1015,1015,1034,1034,1037,1038,1038,1085,1085]) +("t1",[87,88,90,91,103,103,163,163,189,189,218,218,296,296,297,297,303,307,928,929]) +("t2",[87,89,90,92,103,103,163,163,189,189,218,218,296,296,297,297,303,309,928,929]) +("t2e",[56,58,58,60,61,62,63,63,63,64,64,65,66,67,68,68,71]) +("tVs",[563,568,572,738,739]) +("tau",[685,688,689,704,709,718,719,724,729,731,731,735]) +("tc",[127,508,514,517,520,523,526,527,528,530,533,540,655,663,714,722,847,955,1003,1093]) +("tcAdd",[1005,1020,1026,1098]) +("tcAl",[894,899,902,1038]) +("tcApply",[197,201,214,287,939,969]) +("tcArrow",[159,163]) +("tcBar",[385,390,394,1037]) +("tcBool",[175,177]) +("tcCharVal",[415,417,418,881]) +("tcCheck",[117,122]) +("tcCheckUnifier",[356,361,363,364,365]) +("tcConstrTypeSchemes",[146,551,555]) +("tcDeOkSel",[629]) +("tcDeOksel",[628,629,689,733,755]) +("tcDelta",[238,242,247,264]) +("tcDeplete",[450,453,470,572,921,957]) +("tcExclude",[404,406]) +("tcExtend",[255,260,284]) +("tcGenbar",[1028,1034]) +("tcGetAllGammas",[659,799,804,807,809]) +("tcGetGammaN",[770,775,808]) +("tcGetTypeDef",[604,814,818]) +("tcId",[231,233,355,515,689,731,845,879]) +("tcInt",[168,170]) +("tcK31sel",[636,739]) +("tcK33",[608,637,659,740]) +("tcMapAnnExpr",[16,20,27,27,29,31,32,35,38,47]) +("tcMergeSubs",[333,336,339,727,733]) +("tcMergeSubsMain",[341,346,349]) +("tcNSDouble",[462,483,486,487,491,492]) +("tcNSSucc",[453,461,474,477,478,479,492]) +("tcNSdlimit",[489,489,495,496,499,499]) +("tcNSslimit",[478,498,499]) +("tcName",[467,470,470,764,893,1036,1067]) +("tcNew",[958,974,1062,1067,1067]) +("tcNewTypeVars",[560,605,760,764]) +("tcNewinstance",[882,887,891]) +("tcNext",[442,445,470,920,959]) +("tcOk13sel",[630,631,631,687,723]) +("tcOk23sel",[632,633,633,688,724,735]) +("tcOk33sel",[634,635,635,725,737]) +("tcOld",[1078,1085,1095]) +("tcOldUnified",[351,370,372,373,374]) +("tcPretty",[108,111,143]) +("tcReorder",[609,615,617,618,623]) +("tcResult",[123,127,133]) +("tcScomp",[222,226,264,863,1015]) +("tcShowtExpr",[77,80,97,113,269,272,307,309]) +("tcSplit",[458,461,606,664,665,849,994,1007,1060,1061,1099]) +("tcSub",[47,204,210,214,216,216,218,218,218,288,374,399,403,404,430,434,434,729,735,856,863,891,1006,1038,1079,1080,1096,1097]) +("tcSubstAnnTree",[43,47,135]) +("tcTDefSubst",[567,776,782,786,793,794]) +("tcTreeToEnv",[52,55,137]) +("tcTvars",[182,185,263,385,569,1037]) +("tcUnify",[278,282,285,290,291,293,294,296,299,303,323,731,751,755,929]) +("tcUnifySet",[355,689,745,749,750,752,753]) +("tcUnifyl",[297,301,316,320,1076]) +("tcUnknowns",[382,385,422,425,425,1029]) +("tcap",[524,911,918]) +("tcap1",[918,926,928]) +("tcap2",[929,934,936]) +("tccase",[541,583,593]) +("tccase1",[602,643,653]) +("tccase2",[657,670,680]) +("tccase3",[684,695,708]) +("tcl",[838,844,846,856,918,995,1058]) +("tcl1",[847,854,855]) +("tcl2",[856,861,862]) +("tclambda",[529,531,948,955]) +("tclambda1",[955,964,966]) +("tclet",[535,983,991]) +("tclet1",[992,1000,1002]) +("tclet2",[1003,1012,1014,1093]) +("tcletrec",[536,1048,1056]) +("tcletrec1",[1057,1073,1075]) +("tcletrec2",[1076,1090,1092]) +("tcn",[216,216,299,299,300,300]) +("tcvar",[518,521,873,879]) +("tdCNames",[599,608,609,720,740]) +("tdInUse",[602,604,605,608,653,657,659,680,684,701,708,739,740]) +("tdSignature",[566,568,729,739]) +("tdefs",[122,127,146]) +("tdefset",[819,821,823,825]) +("tds",[514,517,518,520,521,523,524,526,527,528,529,530,531,533,535,536,540,541,593,602,604,653,657,663,680,684,695,708,722,818,827,844,846,847,847,854,855,856,879,918,918,955,955,991,992,995,1000,1002,1003,1056,1057,1058,1073,1075,1076,1090,1092,1093]) +("te",[422,425,430,434,856,1006,1029,1079,1080,1096,1097]) +("texp",[569,569,569]) +("texpr",[247,247]) +("that",[715]) +("the",[559,562,565,565,571,594,596,597,598,654,654,655,681,681,682,682,683,710,711,712,712,712,714,714,715,716,716,717,717]) +("themselves",[562]) +("then",[124,203,284,338,535,600,656,820,822]) +("therein",[595]) +("these",[731]) +("this",[715]) +("tijp",[70,71]) +("times",[574]) +("tipe",[111,113]) +("tn",[555,560,568]) +("tname",[826,827]) +("to",[270,574,595,597,655,681,685,685,687,688,689,703,704,709,709,712,712,714,727,894,899,902,1038]) +("track",[378]) +("tree",[47,47,55,56,719,725]) +("ts",[98,99,102,102,188,188,216,216,299,299,301,301,862,863,1002,1005,1026,1028,1075,1076,1076,1078,1095,1098]) +("tvars",[185,187,188,188,189,189,189,710]) +("tvdict",[83,100,100,101,102,102,103,103,103]) +("tvl",[775,776,804,807,808,809]) +("tvn",[201,202,203,206,206,214,214,242,243,244,244,245,245,247,247,260,261,263,264,269,282,283,284,287,789,789,918,920,926,928,929,929,934,936,939,955,958,959,964,966,969,974,974]) +("tvn2",[242,243,244,244,245,245]) +("tvname",[83,83,96,98,98,99]) +("type",[3,47,125,155,204,210,214,216,216,218,218,218,288,374,404,503,558,559,562,583,584,594,595,682,682,713,714,715,717,729,735,814,863,891,1038]) +("typedef",[712]) +("types",[378,565,656,683]) +("u",[373,374]) +("undeclared",[621]) +("unified",[347]) +("unifiedOlds",[338,339,341]) +("unifier",[681,683]) +("unifiers",[681]) +("unify",[306,321,323,324]) +("unknown",[710]) +("unknowns",[1028,1029,1034,1037]) +("unzip2",[538,543,544,609]) +("uol",[617,618,619,623]) +("up",[710]) +("us",[373,374]) +("use",[594,820]) +("used",[815]) +("usedc",[828,829]) +("utDomain",[353]) +("utLookup",[791]) +("utLookupAll",[354]) +("utLookupDef",[206,418,619]) +("utRange",[425]) +("v",[23,23,60]) +("v5",[3]) +("var",[247,247,558]) +("variable",[418]) +("variables",[438,562,595,682,868]) +("vars",[558,595]) +("version",[4]) +("vl",[764,764]) +("vs",[32,32,141]) +("where",[7,22,57,82,126,133,140,186,205,286,322,340,352,405,462,489,537,542,557,603,658,664,686,721,754,788,824,848,880,892,919,938,956,968,993,1004,1027,1035,1059,1077,1094]) +("with",[308,558,806]) +("x",[130,133,133,187,187,394,394,394,434,434,517,518,528,529,530,531,628,628,879,879,881,955,955,958,964,966,967,974,974,1085]) +("x2",[131]) +("xs",[394,394,530,531,535,536,538,991,992,1000,1002,1003,1005,1012,1014,1015,1026,1026,1056,1057,1062,1067,1067,1073,1075,1076,1090,1092,1093]) +("y",[188,530,531]) +("ys",[394,394]) +("zip",[301,351,607,607,720,720,764,776,893,1015,1026,1036,1067,1076]) diff --git a/ghc/tests/programs/lex/lex.stdout b/ghc/tests/programs/lex/lex.stdout index 1623480f883e..2b98545890e7 100644 --- a/ghc/tests/programs/lex/lex.stdout +++ b/ghc/tests/programs/lex/lex.stdout @@ -1 +1 @@ -["module", "Graph", "where", "import", "Parse", "import", "StdLib", "import", "PSlib", "import", "GRIP", "paperX", "=", "280", "::", "Int", "paperY", "=", "190", "::", "Int", "fromInt", "::", "Num", "a", "=>", "Int", "->", "a", "fromInt", "=", "fromInteger", ".", "toInteger", "gspostscript", "str", "=", "initialise", "stdheader", "++", "portrait", "++", "str", "++", "\"showpage\\n\"", "postscript", "str", "=", "initialise", "stdheader", "++", "landscape", "++", "str", "++", "\"showpage\\n\"", "ePostscript", "(", "reqdx", ",", "reqdy", ")", "str", "=", "initialise", "(", "stdheader", "++", "\"%%BoundingBox: 0 0 \"", "++", "show", "(", "cms2pts", "reqdx", ")", "++", "\" \"", "++", "show", "(", "cms2pts", "reqdy", ")", "++", "\"\\n\"", "++", "\"%%EndComments\\n\"", ")", "++", "scale", "(", "fromInt", "reqdx", "*", "10", "/", "fromInt", "paperX", ")", "(", "fromInt", "reqdy", "*", "10", "/", "fromInt", "paperY", ")", "++", "str", "++", "showpage", "initGraph", "title", "pedata", "(", "topX", ",", "topY", ")", "(", "xlabel", ",", "ylabel", ")", "keys", "=", "drawBox", "(", "Pt", "0", "0", ")", "paperX", "paperY", "++", "drawBox", "(", "Pt", "1", "1", ")", "(", "paperX", "-", "2", ")", "5", "++", "drawBox", "(", "Pt", "1", "(", "paperY", "-", "7", ")", ")", "(", "paperX", "-", "2", ")", "6", "++", "setfont", "\"BOLD\"", "++", "moveto", "(", "Pt", "(", "paperX", "`", "div", "`", "2", ")", "(", "paperY", "-", "6", ")", ")", "++", "cjustify", "(", "title", ")", "++", "setfont", "\"NORM\"", "++", "placePEs", "pedata", "++", "translate", "20", "25", "++", "newpath", "++", "moveto", "(", "Pt", "0", "(", "-", "5", ")", ")", "++", "lineto", "(", "Pt", "0", "dimY", ")", "++", "moveto", "(", "Pt", "(", "-", "5", ")", "0", ")", "++", "lineto", "(", "Pt", "dimX", "0", ")", "++", "stroke", "++", "setfont", "\"SMALL\"", "++", "markXAxis", "dimX", "topX", "++", "markYAxis", "dimY", "topY", "++", "moveto", "(", "Pt", "0", "(", "dimY", "+", "4", ")", ")", "++", "rjustify", "ylabel", "++", "stroke", "++", "moveto", "(", "Pt", "dimX", "(", "-", "8", ")", ")", "++", "rjustify", "xlabel", "++", "stroke", "++", "setfont", "\"NORM\"", "++", "dokeys", "dimX", "keys", "placePEs", "(", "pes", ",", "on", ")", "|", "checkPEs", "(", "tail", "pes", ")", "on", "=", "showActive", "(", "length", "pes", ")", "(", "length", "used", ")", "++", "showUsed", "pes", "used", "++", "setfont", "\"NORM\"", "where", "used", "=", "if", "on", "==", "[", "]", "then", "tail", "pes", "else", "on", "cms2pts", "::", "Int", "->", "Int", "cms2pts", "x", "=", "round", "(", "28.4584", "*", "fromInt", "x", ")", "plotCurve", "::", "Int", "->", "[", "Point", "]", "->", "Postscript", "plotCurve", "x", "pts", "=", "setgray", "x", "++", "fillObject", "pts", "plot", "::", "[", "Point", "]", "->", "Postscript", "plot", "points", "=", "plotCurve", "5", "(", "Pt", "0", "0", ":", "points", ")", "dokeys", "left", "keys", "=", "concat", "(", "map2", "format", "(", "places", "0", ")", "keys", ")", "where", "format", "pt", "@", "(", "Pt", "x", "y", ")", "(", "col", ",", "tex", ",", "pc", ")", "=", "fillBox", "pt", "16", "9", "col", "++", "stroke", "++", "moveto", "(", "Pt", "(", "x", "+", "17", ")", "(", "y", "+", "3", ")", ")", "++", "text", "tex", "++", "stroke", "++", "moveto", "(", "Pt", "(", "x", "+", "8", ")", "(", "y", "+", "3", ")", ")", "++", "inv", "col", "++", "setfont", "\"BOLD\"", "++", "cjustify", "(", "pc", ")", "++", "stroke", "++", "setfont", "\"NORM\"", "++", "setgray", "10", "no", "=", "left", "`", "div", "`", "length", "keys", "places", "n", "|", "n", "==", "no", "=", "[", "]", "places", "n", "=", "(", "Pt", "(", "n", "*", "no", ")", "(", "-", "17", ")", ")", ":", "places", "(", "n", "+", "1", ")", "showActive", "t", "f", "=", "setfont", "\"LARGE\"", "++", "moveto", "(", "Pt", "10", "16", ")", "++", "cjustify", "(", "show", "f", ")", "++", "setfont", "\"SMALL\"", "++", "moveto", "(", "Pt", "10", "12", ")", "++", "cjustify", "\"PE(s)\"", "++", "stroke", "++", "setfont", "\"SMALL\"", "++", "moveto", "(", "Pt", "10", "8", ")", "++", "cjustify", "\"displayed\"", "++", "stroke", "++", "setfont", "\"NORM\"", "showUsed", "(", "m", ":", "pes", ")", "on", "=", "moveto", "(", "Pt", "2", "2", ")", "++", "setfont", "\"SMALL\"", "++", "text", "\"Configuration:\"", "++", "dopes", "(", "paperX", "-", "27", ")", "(", "(", "\"SMALLITALIC\"", ",", "showPE", "m", ")", ":", "map", "f", "pes", ")", "++", "stroke", "where", "f", "pe", "|", "elem", "pe", "on", "=", "(", "\"SMALLBOLD\"", ",", "showPE", "pe", ")", "|", "otherwise", "=", "(", "\"SMALL\"", ",", "showPE", "pe", ")", "dopes", "left", "pes", "=", "concat", "(", "map2", "format", "(", "places", "0", ")", "pes", ")", "where", "format", "pt", "@", "(", "Pt", "x", "y", ")", "(", "font", ",", "tex", ")", "=", "setfont", "font", "++", "moveto", "pt", "++", "text", "tex", "++", "stroke", "no", "=", "left", "`", "div", "`", "(", "(", "length", "pes", "*", "2", ")", "+", "1", ")", "f", "x", "=", "(", "no", "*", "(", "(", "x", "*", "2", ")", "+", "1", ")", ")", "+", "27", "places", "n", "|", "n", ">", "2", "*", "no", "=", "[", "]", "places", "n", "=", "(", "Pt", "(", "f", "n", ")", "2", ")", ":", "places", "(", "n", "+", "1", ")", "checkPEs", "pes", "[", "]", "=", "True", "checkPEs", "pes", "(", "p", ":", "ps", ")", "|", "elem", "p", "pes", "=", "checkPEs", "pes", "ps", "|", "otherwise", "=", "error", "(", "\"Attempt to gather information from inactive PE - \"", "++", "showPE", "p", ")", "showPE", "::", "PElement", "->", "String", "showPE", "(", "PE", "str", "no", ")", "=", "str", "++", "\".\"", "++", "show", "no", "inv", "x", "|", "x", ">=", "5", "=", "setgray", "0", "|", "otherwise", "=", "setgray", "10", "dimX", "=", "paperX", "-", "30", "dimY", "=", "paperY", "-", "40", "markXAxis", "::", "Int", "->", "Int", "->", "Postscript", "markXAxis", "dimX", "maxX", "=", "label", "10", "++", "markOnX", "100", "where", "label", "0", "=", "\"\"", "label", "x", "=", "newpath", "++", "moveto", "(", "Pt", "(", "notch", "x", ")", "0", ")", "++", "rlineto", "0", "(", "-", "2", ")", "++", "moveto", "(", "Pt", "(", "notch", "x", ")", "(", "-", "5", ")", ")", "++", "cjustify", "(", "printFloat", "(", "t", "x", ")", ")", "++", "stroke", "++", "label", "(", "x", "-", "1", ")", "t", "x", "=", "fromInt", "x", "*", "(", "fromInt", "maxX", "/", "fromInt", "10", ")", "notch", "x", "=", "x", "*", "(", "dimX", "`", "div", "`", "10", ")", "markOnX", "n", "=", "mapcat", "notches", "[", "1", "..", "n", "]", "++", "stroke", "where", "notches", "n", "=", "movetofloat", "(", "m", "*", "fromInt", "n", ")", "0", "++", "(", "rlineto", "0", "(", "-", "1", ")", ")", "++", "stroke", "m", "=", "fromInt", "dimX", "/", "fromInt", "n", "markYAxis", "::", "Int", "->", "Int", "->", "Postscript", "markYAxis", "dimY", "maxY", "=", "label", "10", "++", "markOnY", "(", "calibrate", "maxY", ")", "where", "label", "0", "=", "\"\"", "label", "x", "=", "newpath", "++", "moveto", "(", "Pt", "0", "(", "notch", "x", ")", ")", "++", "rlineto", "(", "-", "2", ")", "0", "++", "moveto", "(", "Pt", "(", "-", "3", ")", "(", "notch", "x", ")", ")", "++", "rjustify", "(", "printFloat", "(", "t", "x", ")", ")", "++", "stroke", "++", "label", "(", "x", "-", "1", ")", "t", "x", "=", "fromInt", "x", "*", "(", "fromInt", "maxY", "/", "fromInt", "10", ")", "notch", "x", "=", "x", "*", "(", "dimY", "`", "div", "`", "10", ")", "calibrate", "x", "|", "x", "<=", "1", "=", "1", "|", "x", "<=", "100", "=", "x", "|", "otherwise", "=", "calibrate", "(", "x", "`", "div", "`", "10", ")", "markOnY", "n", "=", "mapcat", "notches", "[", "1", "..", "n", "]", "++", "stroke", "where", "notches", "n", "=", "movetofloat", "0", "(", "m", "*", "fromInt", "n", ")", "++", "(", "rlineto", "(", "-", "1", ")", "0", ")", "m", "=", "fromInt", "dimY", "/", "fromInt", "n", "movetofloat", "x", "y", "=", "show", "x", "++", "\" \"", "++", "show", "y", "++", "\" moveto\\n\"", "determineScale", "::", "[", "Point", "]", "->", "(", "Int", ",", "Int", ")", "determineScale", "pts", "=", "(", "axisScale", "x", ",", "axisScale", "y", ")", "where", "(", "min", ",", "Pt", "x", "y", ")", "=", "minandmax", "pts", "axisScale", "::", "Int", "->", "Int", "axisScale", "x", "=", "axisScale'", "x", "1", "axisScale'", "x", "m", "|", "x", "<=", "m", "=", "m", "|", "x", "<=", "m", "*", "2", "=", "m", "*", "2", "|", "x", "<=", "m", "*", "5", "=", "m", "*", "5", "|", "x", "<=", "m", "*", "10", "=", "m", "*", "10", "|", "otherwise", "=", "axisScale'", "x", "(", "m", "*", "10", ")", "minandmax", "::", "[", "Point", "]", "->", "(", "Point", ",", "Point", ")", "minandmax", "[", "]", "=", "error", "\"No points\"", "minandmax", "(", "p", ":", "ps", ")", "=", "f", "(", "p", ",", "p", ")", "ps", "where", "f", "p", "[", "]", "=", "p", "f", "(", "Pt", "minx", "miny", ",", "Pt", "maxx", "maxy", ")", "(", "Pt", "x", "y", ":", "ps", ")", "=", "f", "(", "Pt", "minx'", "miny'", ",", "Pt", "maxx'", "maxy'", ")", "ps", "where", "minx'", "=", "min", "x", "minx", "miny'", "=", "min", "y", "miny", "maxx'", "=", "max", "x", "maxx", "maxy'", "=", "max", "y", "maxy", "printFloat", "::", "Float", "->", "String", "printFloat", "x", "=", "f", "(", "show", "(", "round", "(", "x", "*", "10", ")", ")", ")", "where", "f", "\"0\"", "=", "\"0\"", "f", "r", "|", "x", "<", "1", "=", "\"0.\"", "++", "r", "f", "(", "r", ":", "\"0\"", ")", "|", "x", "<", "10", "=", "[", "r", "]", "f", "(", "r", ":", "m", ")", "|", "x", "<", "10", "=", "r", ":", "'.'", ":", "m", "f", "_", "=", "show", "(", "round", "x", ")", ""] +["module","Graph","where","import","Parse","import","StdLib","import","PSlib","import","GRIP","paperX","=","280","::","Int","paperY","=","190","::","Int","fromInt","::","Num","a","=>","Int","->","a","fromInt","=","fromInteger",".","toInteger","gspostscript","str","=","initialise","stdheader","++","portrait","++","str","++","\"showpage\\n\"","postscript","str","=","initialise","stdheader","++","landscape","++","str","++","\"showpage\\n\"","ePostscript","(","reqdx",",","reqdy",")","str","=","initialise","(","stdheader","++","\"%%BoundingBox: 0 0 \"","++","show","(","cms2pts","reqdx",")","++","\" \"","++","show","(","cms2pts","reqdy",")","++","\"\\n\"","++","\"%%EndComments\\n\"",")","++","scale","(","fromInt","reqdx","*","10","/","fromInt","paperX",")","(","fromInt","reqdy","*","10","/","fromInt","paperY",")","++","str","++","showpage","initGraph","title","pedata","(","topX",",","topY",")","(","xlabel",",","ylabel",")","keys","=","drawBox","(","Pt","0","0",")","paperX","paperY","++","drawBox","(","Pt","1","1",")","(","paperX","-","2",")","5","++","drawBox","(","Pt","1","(","paperY","-","7",")",")","(","paperX","-","2",")","6","++","setfont","\"BOLD\"","++","moveto","(","Pt","(","paperX","`","div","`","2",")","(","paperY","-","6",")",")","++","cjustify","(","title",")","++","setfont","\"NORM\"","++","placePEs","pedata","++","translate","20","25","++","newpath","++","moveto","(","Pt","0","(","-","5",")",")","++","lineto","(","Pt","0","dimY",")","++","moveto","(","Pt","(","-","5",")","0",")","++","lineto","(","Pt","dimX","0",")","++","stroke","++","setfont","\"SMALL\"","++","markXAxis","dimX","topX","++","markYAxis","dimY","topY","++","moveto","(","Pt","0","(","dimY","+","4",")",")","++","rjustify","ylabel","++","stroke","++","moveto","(","Pt","dimX","(","-","8",")",")","++","rjustify","xlabel","++","stroke","++","setfont","\"NORM\"","++","dokeys","dimX","keys","placePEs","(","pes",",","on",")","|","checkPEs","(","tail","pes",")","on","=","showActive","(","length","pes",")","(","length","used",")","++","showUsed","pes","used","++","setfont","\"NORM\"","where","used","=","if","on","==","[","]","then","tail","pes","else","on","cms2pts","::","Int","->","Int","cms2pts","x","=","round","(","28.4584","*","fromInt","x",")","plotCurve","::","Int","->","[","Point","]","->","Postscript","plotCurve","x","pts","=","setgray","x","++","fillObject","pts","plot","::","[","Point","]","->","Postscript","plot","points","=","plotCurve","5","(","Pt","0","0",":","points",")","dokeys","left","keys","=","concat","(","map2","format","(","places","0",")","keys",")","where","format","pt","@","(","Pt","x","y",")","(","col",",","tex",",","pc",")","=","fillBox","pt","16","9","col","++","stroke","++","moveto","(","Pt","(","x","+","17",")","(","y","+","3",")",")","++","text","tex","++","stroke","++","moveto","(","Pt","(","x","+","8",")","(","y","+","3",")",")","++","inv","col","++","setfont","\"BOLD\"","++","cjustify","(","pc",")","++","stroke","++","setfont","\"NORM\"","++","setgray","10","no","=","left","`","div","`","length","keys","places","n","|","n","==","no","=","[","]","places","n","=","(","Pt","(","n","*","no",")","(","-","17",")",")",":","places","(","n","+","1",")","showActive","t","f","=","setfont","\"LARGE\"","++","moveto","(","Pt","10","16",")","++","cjustify","(","show","f",")","++","setfont","\"SMALL\"","++","moveto","(","Pt","10","12",")","++","cjustify","\"PE(s)\"","++","stroke","++","setfont","\"SMALL\"","++","moveto","(","Pt","10","8",")","++","cjustify","\"displayed\"","++","stroke","++","setfont","\"NORM\"","showUsed","(","m",":","pes",")","on","=","moveto","(","Pt","2","2",")","++","setfont","\"SMALL\"","++","text","\"Configuration:\"","++","dopes","(","paperX","-","27",")","(","(","\"SMALLITALIC\"",",","showPE","m",")",":","map","f","pes",")","++","stroke","where","f","pe","|","elem","pe","on","=","(","\"SMALLBOLD\"",",","showPE","pe",")","|","otherwise","=","(","\"SMALL\"",",","showPE","pe",")","dopes","left","pes","=","concat","(","map2","format","(","places","0",")","pes",")","where","format","pt","@","(","Pt","x","y",")","(","font",",","tex",")","=","setfont","font","++","moveto","pt","++","text","tex","++","stroke","no","=","left","`","div","`","(","(","length","pes","*","2",")","+","1",")","f","x","=","(","no","*","(","(","x","*","2",")","+","1",")",")","+","27","places","n","|","n",">","2","*","no","=","[","]","places","n","=","(","Pt","(","f","n",")","2",")",":","places","(","n","+","1",")","checkPEs","pes","[","]","=","True","checkPEs","pes","(","p",":","ps",")","|","elem","p","pes","=","checkPEs","pes","ps","|","otherwise","=","error","(","\"Attempt to gather information from inactive PE - \"","++","showPE","p",")","showPE","::","PElement","->","String","showPE","(","PE","str","no",")","=","str","++","\".\"","++","show","no","inv","x","|","x",">=","5","=","setgray","0","|","otherwise","=","setgray","10","dimX","=","paperX","-","30","dimY","=","paperY","-","40","markXAxis","::","Int","->","Int","->","Postscript","markXAxis","dimX","maxX","=","label","10","++","markOnX","100","where","label","0","=","\"\"","label","x","=","newpath","++","moveto","(","Pt","(","notch","x",")","0",")","++","rlineto","0","(","-","2",")","++","moveto","(","Pt","(","notch","x",")","(","-","5",")",")","++","cjustify","(","printFloat","(","t","x",")",")","++","stroke","++","label","(","x","-","1",")","t","x","=","fromInt","x","*","(","fromInt","maxX","/","fromInt","10",")","notch","x","=","x","*","(","dimX","`","div","`","10",")","markOnX","n","=","mapcat","notches","[","1.",".","n","]","++","stroke","where","notches","n","=","movetofloat","(","m","*","fromInt","n",")","0","++","(","rlineto","0","(","-","1",")",")","++","stroke","m","=","fromInt","dimX","/","fromInt","n","markYAxis","::","Int","->","Int","->","Postscript","markYAxis","dimY","maxY","=","label","10","++","markOnY","(","calibrate","maxY",")","where","label","0","=","\"\"","label","x","=","newpath","++","moveto","(","Pt","0","(","notch","x",")",")","++","rlineto","(","-","2",")","0","++","moveto","(","Pt","(","-","3",")","(","notch","x",")",")","++","rjustify","(","printFloat","(","t","x",")",")","++","stroke","++","label","(","x","-","1",")","t","x","=","fromInt","x","*","(","fromInt","maxY","/","fromInt","10",")","notch","x","=","x","*","(","dimY","`","div","`","10",")","calibrate","x","|","x","<=","1","=","1","|","x","<=","100","=","x","|","otherwise","=","calibrate","(","x","`","div","`","10",")","markOnY","n","=","mapcat","notches","[","1.",".","n","]","++","stroke","where","notches","n","=","movetofloat","0","(","m","*","fromInt","n",")","++","(","rlineto","(","-","1",")","0",")","m","=","fromInt","dimY","/","fromInt","n","movetofloat","x","y","=","show","x","++","\" \"","++","show","y","++","\" moveto\\n\"","determineScale","::","[","Point","]","->","(","Int",",","Int",")","determineScale","pts","=","(","axisScale","x",",","axisScale","y",")","where","(","min",",","Pt","x","y",")","=","minandmax","pts","axisScale","::","Int","->","Int","axisScale","x","=","axisScale'","x","1","axisScale'","x","m","|","x","<=","m","=","m","|","x","<=","m","*","2","=","m","*","2","|","x","<=","m","*","5","=","m","*","5","|","x","<=","m","*","10","=","m","*","10","|","otherwise","=","axisScale'","x","(","m","*","10",")","minandmax","::","[","Point","]","->","(","Point",",","Point",")","minandmax","[","]","=","error","\"No points\"","minandmax","(","p",":","ps",")","=","f","(","p",",","p",")","ps","where","f","p","[","]","=","p","f","(","Pt","minx","miny",",","Pt","maxx","maxy",")","(","Pt","x","y",":","ps",")","=","f","(","Pt","minx'","miny'",",","Pt","maxx'","maxy'",")","ps","where","minx'","=","min","x","minx","miny'","=","min","y","miny","maxx'","=","max","x","maxx","maxy'","=","max","y","maxy","printFloat","::","Float","->","String","printFloat","x","=","f","(","show","(","round","(","x","*","10",")",")",")","where","f","\"0\"","=","\"0\"","f","r","|","x","<","1","=","\"0.\"","++","r","f","(","r",":","\"0\"",")","|","x","<","10","=","[","r","]","f","(","r",":","m",")","|","x","<","10","=","r",":","'.'",":","m","f","_","=","show","(","round","x",")",""] diff --git a/ghc/tests/programs/mk/target.mk b/ghc/tests/programs/mk/target.mk index da6ab86f0359..0a73e68e4996 100644 --- a/ghc/tests/programs/mk/target.mk +++ b/ghc/tests/programs/mk/target.mk @@ -8,7 +8,7 @@ # Link step $(TEST_PROG) : $(OBJS) - $(HC) $(HC_FLAGS) $(OBJS) -o $(TEST_PROG) + $(HC) $(HC_OPTS) $(OBJS) -o $(TEST_PROG) # Run test runtest : $(TEST_PROG) diff --git a/ghc/tests/programs/sanders_array/Main.hs b/ghc/tests/programs/sanders_array/Main.hs index a5026521dc07..491a46b619ac 100644 --- a/ghc/tests/programs/sanders_array/Main.hs +++ b/ghc/tests/programs/sanders_array/Main.hs @@ -34,7 +34,7 @@ ar_list = [[1,2,3], [6,7,8], [10,12,15]] -main = putStr (show ar) +main = putStrLn (show ar) {- What it tries to do is turn a list of lists into a 2-d array in an incremental diff --git a/ghc/tests/programs/sanders_array/sanders_array.stdout b/ghc/tests/programs/sanders_array/sanders_array.stdout index dd3e0559ca7d..d3405a74e2a7 100644 --- a/ghc/tests/programs/sanders_array/sanders_array.stdout +++ b/ghc/tests/programs/sanders_array/sanders_array.stdout @@ -1 +1 @@ -array ((1, 1), (3, 3)) [((1, 1), 1), ((1, 2), 2), ((1, 3), 3), ((2, 1), 6), ((2, 2), 7), ((2, 3), 8), ((3, 1), 10), ((3, 2), 12), ((3, 3), 15)] \ No newline at end of file +array ((1,1),(3,3)) [((1,1),1),((1,2),2),((1,3),3),((2,1),6),((2,2),7),((2,3),8),((3,1),10),((3,2),12),((3,3),15)] diff --git a/ghc/tests/programs/seward-space-leak/Main.lhs b/ghc/tests/programs/seward-space-leak/Main.lhs index c481597435f3..327118d5e3da 100644 --- a/ghc/tests/programs/seward-space-leak/Main.lhs +++ b/ghc/tests/programs/seward-space-leak/Main.lhs @@ -641,7 +641,7 @@ Finally: --> testq tt = (layn . map show' . nub) (enumerate tt) -> main = putStr (show (apply_cds `myElem` (enumerate (Fn [Fn [Two], Two])))) +> main = putStrLn (show (apply_cds `myElem` (enumerate (Fn [Fn [Two], Two])))) > > i `myElem` [] = False > i `myElem` (x:xs) = if i == x then True else i `myElem` xs diff --git a/ghc/tests/programs/waugh_neural/BpGen.lhs b/ghc/tests/programs/waugh_neural/BpGen.lhs index 6901c5cbac5f..edba27a13f54 100644 --- a/ghc/tests/programs/waugh_neural/BpGen.lhs +++ b/ghc/tests/programs/waugh_neural/BpGen.lhs @@ -20,6 +20,11 @@ Need to use modules for matrix and vector operations. > import List(transpose) > infixl 7 $$ +> randomInts :: a -> Int -> [Int] +> randomInts _ l = randoms (mkStdGen l) +> randomDoubles :: a -> Int -> [Double] +> randomDoubles _ l = randoms (mkStdGen l) + ------------------------------------------------------------------------------- | Data Types | ------------------------------------------------------------------------------- diff --git a/ghc/tests/programs/waugh_neural/Makefile b/ghc/tests/programs/waugh_neural/Makefile index 39dc227faa9c..ec143fbf4a88 100644 --- a/ghc/tests/programs/waugh_neural/Makefile +++ b/ghc/tests/programs/waugh_neural/Makefile @@ -1,6 +1,8 @@ TOP = .. include $(TOP)/mk/boilerplate.mk +SRC_HC_OPTS += -syslib misc + all :: runtest include $(TOP)/mk/target.mk diff --git a/ghc/tests/programs/zhang_ccall/Main.hs b/ghc/tests/programs/zhang_ccall/Main.hs index 1f6de0d4ebbd..2cfc0812e2cd 100644 --- a/ghc/tests/programs/zhang_ccall/Main.hs +++ b/ghc/tests/programs/zhang_ccall/Main.hs @@ -1,10 +1,12 @@ +{-# OPTIONS -#include "ccall.h" #-} +-- The 'bug' here was the omission of prototypes for +-- a C function peddling floats. module Main where -import STBase +import IOExts main = putStr (shows res "\n") where - res = unsafePerformPrimIO ( - ca `thenPrimIO` \r -> returnPrimIO r) - ca :: PrimIO Float + res = unsafePerformIO ca + ca :: IO Float ca = _ccall_ nn diff --git a/ghc/tests/programs/zhang_ccall/ccall.h b/ghc/tests/programs/zhang_ccall/ccall.h new file mode 100644 index 000000000000..8279c8ee0d7c --- /dev/null +++ b/ghc/tests/programs/zhang_ccall/ccall.h @@ -0,0 +1 @@ +extern float nn();