summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghci/scripts
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2011-07-20 11:09:03 -0700
committerDavid Terei <davidterei@gmail.com>2011-07-20 11:26:35 -0700
commit16514f272fb42af6e9c7674a9bd6c9dce369231f (patch)
treee4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/ghci/scripts
parentebd422aed41048476aa61dd4c520d43becd78682 (diff)
downloadhaskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/ghci/scripts')
-rw-r--r--testsuite/tests/ghci/scripts/1914.script16
-rw-r--r--testsuite/tests/ghci/scripts/1914.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/1914.stdout7
-rw-r--r--testsuite/tests/ghci/scripts/2452.script2
-rw-r--r--testsuite/tests/ghci/scripts/2452.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/2816.script5
-rw-r--r--testsuite/tests/ghci/scripts/2816.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/2816.stdout3
-rw-r--r--testsuite/tests/ghci/scripts/2976.script8
-rw-r--r--testsuite/tests/ghci/scripts/2976.stdout6
-rw-r--r--testsuite/tests/ghci/scripts/4051.hs2
-rw-r--r--testsuite/tests/ghci/scripts/4051.script4
-rw-r--r--testsuite/tests/ghci/scripts/4051.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/Makefile33
-rw-r--r--testsuite/tests/ghci/scripts/T2766.script4
-rw-r--r--testsuite/tests/ghci/scripts/T2766.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/T3263.hs9
-rw-r--r--testsuite/tests/ghci/scripts/T3263.script1
-rw-r--r--testsuite/tests/ghci/scripts/T3263.stderr5
-rw-r--r--testsuite/tests/ghci/scripts/T4015.hs7
-rw-r--r--testsuite/tests/ghci/scripts/T4015.script9
-rw-r--r--testsuite/tests/ghci/scripts/T4015.stdout20
-rw-r--r--testsuite/tests/ghci/scripts/T4087.hs6
-rw-r--r--testsuite/tests/ghci/scripts/T4087.script2
-rw-r--r--testsuite/tests/ghci/scripts/T4087.stdout3
-rw-r--r--testsuite/tests/ghci/scripts/T4127.script3
-rw-r--r--testsuite/tests/ghci/scripts/T4127.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/T4127a.script2
-rw-r--r--testsuite/tests/ghci/scripts/T4127a.stderr7
-rw-r--r--testsuite/tests/ghci/scripts/T4316.script23
-rw-r--r--testsuite/tests/ghci/scripts/T4316.stdout5
-rw-r--r--testsuite/tests/ghci/scripts/T4832.script2
-rw-r--r--testsuite/tests/ghci/scripts/T4832.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/T5045.hs44
-rw-r--r--testsuite/tests/ghci/scripts/T5045.script2
-rw-r--r--testsuite/tests/ghci/scripts/T5130.script3
-rw-r--r--testsuite/tests/ghci/scripts/T5130.stderr6
-rw-r--r--testsuite/tests/ghci/scripts/T789.hs808
-rw-r--r--testsuite/tests/ghci/scripts/T789.script2
-rw-r--r--testsuite/tests/ghci/scripts/T789.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/all.T77
-rw-r--r--testsuite/tests/ghci/scripts/ghci001.script3
-rw-r--r--testsuite/tests/ghci/scripts/ghci001.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci002.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci002.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci003.script7
-rw-r--r--testsuite/tests/ghci/scripts/ghci003.stdout6
-rw-r--r--testsuite/tests/ghci/scripts/ghci004.hs2
-rw-r--r--testsuite/tests/ghci/scripts/ghci004.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci004.stderr0
-rw-r--r--testsuite/tests/ghci/scripts/ghci004.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci005.script18
-rw-r--r--testsuite/tests/ghci/scripts/ghci005.stdout9
-rw-r--r--testsuite/tests/ghci/scripts/ghci006.hs8
-rw-r--r--testsuite/tests/ghci/scripts/ghci006.script6
-rw-r--r--testsuite/tests/ghci/scripts/ghci006.stderr0
-rw-r--r--testsuite/tests/ghci/scripts/ghci006.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci007.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci007.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci008.script7
-rw-r--r--testsuite/tests/ghci/scripts/ghci008.stdout36
-rw-r--r--testsuite/tests/ghci/scripts/ghci009.script20
-rw-r--r--testsuite/tests/ghci/scripts/ghci009.stdout16
-rw-r--r--testsuite/tests/ghci/scripts/ghci010.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci010.stdout14
-rw-r--r--testsuite/tests/ghci/scripts/ghci011.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci011.stdout21
-rw-r--r--testsuite/tests/ghci/scripts/ghci012.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci012.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci013.script5
-rw-r--r--testsuite/tests/ghci/scripts/ghci013.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci014.hs7
-rw-r--r--testsuite/tests/ghci/scripts/ghci014.script983
-rw-r--r--testsuite/tests/ghci/scripts/ghci014.stdout982
-rw-r--r--testsuite/tests/ghci/scripts/ghci015.hs43
-rw-r--r--testsuite/tests/ghci/scripts/ghci015.script388
-rw-r--r--testsuite/tests/ghci/scripts/ghci015.stdout387
-rw-r--r--testsuite/tests/ghci/scripts/ghci016.hs18
-rw-r--r--testsuite/tests/ghci/scripts/ghci016.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci016.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci017.script1
-rw-r--r--testsuite/tests/ghci/scripts/ghci017.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci018.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci018.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci019.hs9
-rw-r--r--testsuite/tests/ghci/scripts/ghci019.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci019.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci020.script1
-rw-r--r--testsuite/tests/ghci/scripts/ghci020.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci021.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci021.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/ghci021.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci022.hs2
-rw-r--r--testsuite/tests/ghci/scripts/ghci022.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci022.stderr3
-rw-r--r--testsuite/tests/ghci/scripts/ghci022.stdout0
-rw-r--r--testsuite/tests/ghci/scripts/ghci023.ghci10
-rw-r--r--testsuite/tests/ghci/scripts/ghci023.script17
-rw-r--r--testsuite/tests/ghci/scripts/ghci023.stdout16
-rw-r--r--testsuite/tests/ghci/scripts/ghci024.script10
-rw-r--r--testsuite/tests/ghci/scripts/ghci024.stderr1
-rw-r--r--testsuite/tests/ghci/scripts/ghci024.stdout18
-rw-r--r--testsuite/tests/ghci/scripts/ghci025.hs22
-rw-r--r--testsuite/tests/ghci/scripts/ghci025.script27
-rw-r--r--testsuite/tests/ghci/scripts/ghci025.stdout111
-rw-r--r--testsuite/tests/ghci/scripts/ghci025.stdout-ghc-7.0111
-rw-r--r--testsuite/tests/ghci/scripts/ghci026.script6
-rw-r--r--testsuite/tests/ghci/scripts/ghci026.stdout15
-rw-r--r--testsuite/tests/ghci/scripts/ghci027.hs5
-rw-r--r--testsuite/tests/ghci/scripts/ghci027.script8
-rw-r--r--testsuite/tests/ghci/scripts/ghci027.stdout6
-rw-r--r--testsuite/tests/ghci/scripts/ghci027_1.hs5
-rw-r--r--testsuite/tests/ghci/scripts/ghci027_2.hs5
-rw-r--r--testsuite/tests/ghci/scripts/ghci028.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci028.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci029.script11
-rw-r--r--testsuite/tests/ghci/scripts/ghci029.stdout7
-rw-r--r--testsuite/tests/ghci/scripts/ghci030.hs9
-rw-r--r--testsuite/tests/ghci/scripts/ghci030.script3
-rw-r--r--testsuite/tests/ghci/scripts/ghci030.stdout6
-rw-r--r--testsuite/tests/ghci/scripts/ghci031.hs8
-rw-r--r--testsuite/tests/ghci/scripts/ghci031.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci031.stderr3
-rw-r--r--testsuite/tests/ghci/scripts/ghci031.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci032.script8
-rw-r--r--testsuite/tests/ghci/scripts/ghci032.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci033.hs5
-rw-r--r--testsuite/tests/ghci/scripts/ghci033.script2
-rw-r--r--testsuite/tests/ghci/scripts/ghci033.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci034.script3
-rw-r--r--testsuite/tests/ghci/scripts/ghci034.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/ghci034.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci035.script4
-rw-r--r--testsuite/tests/ghci/scripts/ghci035.stdout1
-rw-r--r--testsuite/tests/ghci/scripts/ghci036.script19
-rw-r--r--testsuite/tests/ghci/scripts/ghci036.stderr22
-rw-r--r--testsuite/tests/ghci/scripts/ghci036.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci037.script3
-rw-r--r--testsuite/tests/ghci/scripts/ghci037.stdout2
139 files changed, 4726 insertions, 0 deletions
diff --git a/testsuite/tests/ghci/scripts/1914.script b/testsuite/tests/ghci/scripts/1914.script
new file mode 100644
index 0000000000..5a74350341
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/1914.script
@@ -0,0 +1,16 @@
+:set -v1
+System.IO.writeFile "T1914A.hs" "module T1914A where { import T1914B; }"
+System.IO.writeFile "T1914B.hs" "module T1914B where { type T = Int; }"
+-- hack: avoid the need for sleep by using specific timestamps:
+:! touch -t 01010000 T1914A.hs
+:! touch -t 01010000 T1914B.hs
+:load T1914A
+System.IO.writeFile "T1914A.hs" "module T1914A where { import T1914B; oops }"
+:! touch -t 01010001 T1914A.hs
+:reload
+-- T1914B should still be loaded
+:module *T1914B
+System.IO.writeFile "T1914A.hs" "module T1914A where { import T1914B; }"
+:! touch -t 01010002 T1914A.hs
+:reload
+-- should not have to reload T1914B
diff --git a/testsuite/tests/ghci/scripts/1914.stderr b/testsuite/tests/ghci/scripts/1914.stderr
new file mode 100644
index 0000000000..fe06f7e58f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/1914.stderr
@@ -0,0 +1,2 @@
+
+T1914A.hs:1:38: Parse error: naked expression at top level
diff --git a/testsuite/tests/ghci/scripts/1914.stdout b/testsuite/tests/ghci/scripts/1914.stdout
new file mode 100644
index 0000000000..063758e39c
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/1914.stdout
@@ -0,0 +1,7 @@
+[1 of 2] Compiling T1914B ( T1914B.hs, interpreted )
+[2 of 2] Compiling T1914A ( T1914A.hs, interpreted )
+Ok, modules loaded: T1914A, T1914B.
+[2 of 2] Compiling T1914A ( T1914A.hs, interpreted )
+Failed, modules loaded: T1914B.
+[2 of 2] Compiling T1914A ( T1914A.hs, interpreted )
+Ok, modules loaded: T1914A, T1914B.
diff --git a/testsuite/tests/ghci/scripts/2452.script b/testsuite/tests/ghci/scripts/2452.script
new file mode 100644
index 0000000000..28d2bdc580
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2452.script
@@ -0,0 +1,2 @@
+:set -fno-implicit-import-qualified
+:t System.IO.hPutStrLn
diff --git a/testsuite/tests/ghci/scripts/2452.stderr b/testsuite/tests/ghci/scripts/2452.stderr
new file mode 100644
index 0000000000..2802ee2bdf
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2452.stderr
@@ -0,0 +1,2 @@
+
+<interactive>:1:1: Not in scope: `System.IO.hPutStrLn'
diff --git a/testsuite/tests/ghci/scripts/2816.script b/testsuite/tests/ghci/scripts/2816.script
new file mode 100644
index 0000000000..5fd8477b64
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2816.script
@@ -0,0 +1,5 @@
+let α = 4
+4
+:type α
diff --git a/testsuite/tests/ghci/scripts/2816.stderr b/testsuite/tests/ghci/scripts/2816.stderr
new file mode 100644
index 0000000000..b9c60eea43
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2816.stderr
@@ -0,0 +1,2 @@
+
+<interactive>:1:1: Not in scope: `α'
diff --git a/testsuite/tests/ghci/scripts/2816.stdout b/testsuite/tests/ghci/scripts/2816.stdout
new file mode 100644
index 0000000000..14a53b928e
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2816.stdout
@@ -0,0 +1,3 @@
+4
+4
+α :: Integer
diff --git a/testsuite/tests/ghci/scripts/2976.script b/testsuite/tests/ghci/scripts/2976.script
new file mode 100644
index 0000000000..f4fe8d7122
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2976.script
@@ -0,0 +1,8 @@
+let test = 0
+:show bindings
+:force test
+:show bindings
+let test = "test"
+:show bindings
+:force test
+:show bindings
diff --git a/testsuite/tests/ghci/scripts/2976.stdout b/testsuite/tests/ghci/scripts/2976.stdout
new file mode 100644
index 0000000000..d927ad696c
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/2976.stdout
@@ -0,0 +1,6 @@
+test :: Integer = _
+test = 0
+test :: Integer = 0
+test :: [Char] = _
+test = "test"
+test :: [Char] = "test"
diff --git a/testsuite/tests/ghci/scripts/4051.hs b/testsuite/tests/ghci/scripts/4051.hs
new file mode 100644
index 0000000000..fc9974cb8e
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/4051.hs
@@ -0,0 +1,2 @@
+module X' where
+x = 3
diff --git a/testsuite/tests/ghci/scripts/4051.script b/testsuite/tests/ghci/scripts/4051.script
new file mode 100644
index 0000000000..545ce8b4d8
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/4051.script
@@ -0,0 +1,4 @@
+:l 4051.hs
+:m -X'
+:m X'
+x
diff --git a/testsuite/tests/ghci/scripts/4051.stdout b/testsuite/tests/ghci/scripts/4051.stdout
new file mode 100644
index 0000000000..00750edc07
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/4051.stdout
@@ -0,0 +1 @@
+3
diff --git a/testsuite/tests/ghci/scripts/Makefile b/testsuite/tests/ghci/scripts/Makefile
new file mode 100644
index 0000000000..e3cc561b23
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/Makefile
@@ -0,0 +1,33 @@
+TOP=../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
+
+ghci024:
+ @echo "~~~~~~~~~~ Testing :set"
+ printf ":set\n" \
+ | '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci \
+ | grep -E "^([^ ]| -fno-print-explicit-foralls| -fno-warn-implicit-prelude)"
+ @echo "~~~~~~~~~~ Testing :show languages"
+ printf ":show languages\n" \
+ | '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci \
+ | grep -E "^([^ ]| -XImplicitPrelude| -XMagicHash)"
+ @echo "~~~~~~~~~~ Testing :show languages, with -XMagicHash"
+ printf ":set -XMagicHash\n:show languages\n" \
+ | '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci \
+ | grep -E "^([^ ]| -XImplicitPrelude| -XMagicHash)"
+ @echo "~~~~~~~~~~ Testing :show packages"
+ printf ":show packages\n" \
+ | '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci \
+ | grep -E "^([^ ]| -package|base|ghc-prim|integer|rts|Cabal)" \
+ | sed "s/Cabal-[0-9.]*/Cabal-VERSION/"
+ @echo "~~~~~~~~~~ Testing :show packages, including the ghc package"
+ printf ":set -package ghc\n:show packages\n" \
+ | '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci \
+ | grep -E "^([^ ]| -package|base|ghc-prim|integer|rts|Cabal)" \
+ | sed "s/Cabal-[0-9.]*/Cabal-VERSION/"
+
+.PHONY: ghci037
+ghci037:
+ '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci < ghci037.script
+ '$(TEST_HC)' $(TEST_HC_OPTS) --interactive -v0 -ignore-dot-ghci -fno-ghci-sandbox < ghci037.script
+
diff --git a/testsuite/tests/ghci/scripts/T2766.script b/testsuite/tests/ghci/scripts/T2766.script
new file mode 100644
index 0000000000..87e9bb3918
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T2766.script
@@ -0,0 +1,4 @@
+-- Test Trac #2766
+:set -XTypeOperators
+:m Control.Arrow
+:t first :: Arrow (~>) => b~>c -> (b, d)~>(c, d)
diff --git a/testsuite/tests/ghci/scripts/T2766.stdout b/testsuite/tests/ghci/scripts/T2766.stdout
new file mode 100644
index 0000000000..abe1ca2c95
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T2766.stdout
@@ -0,0 +1,2 @@
+first :: Arrow (~>) => b~>c -> (b, d)~>(c, d)
+ :: Arrow (~>) => (~>) b c -> (~>) (b, d) (c, d)
diff --git a/testsuite/tests/ghci/scripts/T3263.hs b/testsuite/tests/ghci/scripts/T3263.hs
new file mode 100644
index 0000000000..237cf42c6d
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T3263.hs
@@ -0,0 +1,9 @@
+{-# OPTIONS_GHC -Wall #-}
+
+-- Test Trac #3263
+
+module T3263 where
+
+foo :: IO ()
+foo = do { getChar
+ ; return () }
diff --git a/testsuite/tests/ghci/scripts/T3263.script b/testsuite/tests/ghci/scripts/T3263.script
new file mode 100644
index 0000000000..dc13aa6732
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T3263.script
@@ -0,0 +1 @@
+:load T3263
diff --git a/testsuite/tests/ghci/scripts/T3263.stderr b/testsuite/tests/ghci/scripts/T3263.stderr
new file mode 100644
index 0000000000..a7924e4b7f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T3263.stderr
@@ -0,0 +1,5 @@
+
+T3263.hs:8:12:
+ Warning: A do-notation statement discarded a result of type Char.
+ Suppress this warning by saying "_ <- getChar",
+ or by using the flag -fno-warn-unused-do-bind
diff --git a/testsuite/tests/ghci/scripts/T4015.hs b/testsuite/tests/ghci/scripts/T4015.hs
new file mode 100644
index 0000000000..d2968db317
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4015.hs
@@ -0,0 +1,7 @@
+module Test (R(..)) where
+
+data R = R { x :: Char, y :: Int, z :: Float }
+ | S { x :: Char }
+ | T { y :: Int, z:: Float }
+ | W
+
diff --git a/testsuite/tests/ghci/scripts/T4015.script b/testsuite/tests/ghci/scripts/T4015.script
new file mode 100644
index 0000000000..0ab6f33d1a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4015.script
@@ -0,0 +1,9 @@
+:l T4015
+:browse
+:i R
+:i S
+:i T
+:i W
+:i x
+:i y
+:i z
diff --git a/testsuite/tests/ghci/scripts/T4015.stdout b/testsuite/tests/ghci/scripts/T4015.stdout
new file mode 100644
index 0000000000..e850fb9384
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4015.stdout
@@ -0,0 +1,20 @@
+data R
+ = R {x :: Char, y :: Int, z :: Float}
+ | S {x :: Char}
+ | T {y :: Int, z :: Float}
+ | W
+data R
+ = R {x :: Char, y :: Int, z :: Float}
+ | S {x :: Char}
+ | T {y :: Int, z :: Float}
+ | W
+ -- Defined at T4015.hs:3:6
+data R = ... | S {...} | ... -- Defined at T4015.hs:4:10
+data R = ... | T {...} | ... -- Defined at T4015.hs:5:10
+data R = ... | W -- Defined at T4015.hs:6:10
+data R = R {x :: Char, ...} | S {x :: Char} | ...
+ -- Defined at T4015.hs:3:14
+data R = R {..., y :: Int, ...} | ... | T {y :: Int, ...} | ...
+ -- Defined at T4015.hs:3:25
+data R = R {..., z :: Float} | ... | T {..., z :: Float} | ...
+ -- Defined at T4015.hs:3:35
diff --git a/testsuite/tests/ghci/scripts/T4087.hs b/testsuite/tests/ghci/scripts/T4087.hs
new file mode 100644
index 0000000000..b992a9bb20
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4087.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE GADTs #-}
+
+module T4087 where
+
+data Equal a b where
+ Equal :: Equal a a
diff --git a/testsuite/tests/ghci/scripts/T4087.script b/testsuite/tests/ghci/scripts/T4087.script
new file mode 100644
index 0000000000..d1b32ab266
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4087.script
@@ -0,0 +1,2 @@
+:l T4087
+:i Equal
diff --git a/testsuite/tests/ghci/scripts/T4087.stdout b/testsuite/tests/ghci/scripts/T4087.stdout
new file mode 100644
index 0000000000..d3e3ae9abd
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4087.stdout
@@ -0,0 +1,3 @@
+data Equal a b where
+ Equal :: Equal a a
+ -- Defined at T4087.hs:5:6-10
diff --git a/testsuite/tests/ghci/scripts/T4127.script b/testsuite/tests/ghci/scripts/T4127.script
new file mode 100644
index 0000000000..03eb490544
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4127.script
@@ -0,0 +1,3 @@
+:set -XTemplateHaskell
+Language.Haskell.TH.runQ [d| instance Monad ((,) a) where { return = undefined; (>>=) = undefined } |]
+
diff --git a/testsuite/tests/ghci/scripts/T4127.stdout b/testsuite/tests/ghci/scripts/T4127.stdout
new file mode 100644
index 0000000000..9c8f7a1098
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4127.stdout
@@ -0,0 +1 @@
+[InstanceD [] (AppT (ConT GHC.Base.Monad) (AppT (ConT GHC.Tuple.(,)) (VarT a_0))) [ValD (VarP return) (NormalB (VarE GHC.Err.undefined)) [],ValD (VarP >>=) (NormalB (VarE GHC.Err.undefined)) []]]
diff --git a/testsuite/tests/ghci/scripts/T4127a.script b/testsuite/tests/ghci/scripts/T4127a.script
new file mode 100644
index 0000000000..3712c6a184
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4127a.script
@@ -0,0 +1,2 @@
+:set -XTemplateHaskell
+Language.Haskell.TH.runQ $ [d| f = undefined; class Foo x where { f :: x -> x }; instance Foo Int where { f = id } |]
diff --git a/testsuite/tests/ghci/scripts/T4127a.stderr b/testsuite/tests/ghci/scripts/T4127a.stderr
new file mode 100644
index 0000000000..bd96443381
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4127a.stderr
@@ -0,0 +1,7 @@
+
+<interactive>:1:68:
+ Multiple declarations of `f'
+ Declared at: <interactive>:1:32
+ <interactive>:1:68
+
+<interactive>:1:108: `f' is not a (visible) method of class `Foo'
diff --git a/testsuite/tests/ghci/scripts/T4316.script b/testsuite/tests/ghci/scripts/T4316.script
new file mode 100644
index 0000000000..b620aac653
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4316.script
@@ -0,0 +1,23 @@
+:set +m
+:m Control.Monad.State
+flip evalStateT 11 $ do
+ i <- get
+ lift $ do
+ putStrLn "Hello, World!"
+ print i
+
+
+let f = (+ 1)
+in f 2
+
+
+let f = "Hello, World!"
+
+f
+
+let f = True
+
+case f of
+ False -> putStrLn "Failed"
+ True -> putStrLn "Pass"
+
diff --git a/testsuite/tests/ghci/scripts/T4316.stdout b/testsuite/tests/ghci/scripts/T4316.stdout
new file mode 100644
index 0000000000..06891cb2df
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4316.stdout
@@ -0,0 +1,5 @@
+Hello, World!
+11
+3
+"Hello, World!"
+Pass
diff --git a/testsuite/tests/ghci/scripts/T4832.script b/testsuite/tests/ghci/scripts/T4832.script
new file mode 100644
index 0000000000..27b1c2fe4a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4832.script
@@ -0,0 +1,2 @@
+import Control.Applicative
+fmap id id () \ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/T4832.stdout b/testsuite/tests/ghci/scripts/T4832.stdout
new file mode 100644
index 0000000000..6a452c185a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T4832.stdout
@@ -0,0 +1 @@
+()
diff --git a/testsuite/tests/ghci/scripts/T5045.hs b/testsuite/tests/ghci/scripts/T5045.hs
new file mode 100644
index 0000000000..a63bead315
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T5045.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE Arrows, FunctionalDependencies, FlexibleContexts,
+ MultiParamTypeClasses, RecordWildCards #-}
+
+module T5045 where
+
+import Control.Arrow
+
+class (Control.Arrow.Arrow a') => ArrowAddReader r a a' | a -> a' where
+ elimReader :: a e b -> a' (e, r) b
+
+newtype ByteString = FakeByteString String
+
+pathInfo :: Monad m => m String
+pathInfo = undefined
+
+requestMethod :: Monad m => m String
+requestMethod = undefined
+
+getInputsFPS :: Monad m => m [(String, ByteString)]
+getInputsFPS = undefined
+
+class HTTPRequest r s | r -> s where
+ httpGetPath :: r -> String
+ httpSetPath :: r -> String -> r
+ httpGetMethod :: r -> String
+ httpGetInputs :: r -> [(String, s)]
+
+data CGIDispatch = CGIDispatch {
+ dispatchPath :: String,
+ dispatchMethod :: String,
+ dispatchInputs :: [(String, ByteString)] }
+
+instance HTTPRequest CGIDispatch ByteString where
+ httpGetPath = dispatchPath
+ httpSetPath r s = r { dispatchPath = s }
+ httpGetMethod = dispatchMethod
+ httpGetInputs = dispatchInputs
+
+runDispatch :: (Arrow a, ArrowAddReader CGIDispatch a a', Monad m) => a b c -> m (a' b c)
+runDispatch a = do
+ dispatchPath <- pathInfo
+ dispatchMethod <- requestMethod
+ dispatchInputs <- getInputsFPS
+ return $ proc b -> (| elimReader (a -< b) |) CGIDispatch { .. }
diff --git a/testsuite/tests/ghci/scripts/T5045.script b/testsuite/tests/ghci/scripts/T5045.script
new file mode 100644
index 0000000000..34e9a58f5a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T5045.script
@@ -0,0 +1,2 @@
+:l T5045.hs
+
diff --git a/testsuite/tests/ghci/scripts/T5130.script b/testsuite/tests/ghci/scripts/T5130.script
new file mode 100644
index 0000000000..cb4e9d0d6b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T5130.script
@@ -0,0 +1,3 @@
+:set -XScopedTypeVariables
+(\(x :: a, y :: a) -> [x, "hi"])
+
diff --git a/testsuite/tests/ghci/scripts/T5130.stderr b/testsuite/tests/ghci/scripts/T5130.stderr
new file mode 100644
index 0000000000..cf9e6b40ce
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T5130.stderr
@@ -0,0 +1,6 @@
+
+<interactive>:1:27:
+ Couldn't match type `a' with `[Char]'
+ In the expression: "hi"
+ In the expression: [x, "hi"]
+ In the expression: (\ (x :: a, y :: a) -> [x, "hi"])
diff --git a/testsuite/tests/ghci/scripts/T789.hs b/testsuite/tests/ghci/scripts/T789.hs
new file mode 100644
index 0000000000..5cb8e4e1ad
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T789.hs
@@ -0,0 +1,808 @@
+
+module Foo where
+
+table = [
+ "MARY", "PATRICIA", "LINDA", "BARBARA", "ELIZABETH", "JENNIFER",
+ "MARIA", "SUSAN", "MARGARET", "DOROTHY", "LISA", "NANCY", "KAREN",
+ "BETTY", "HELEN", "SANDRA", "DONNA", "CAROL", "RUTH", "SHARON",
+ "MICHELLE", "LAURA", "SARAH", "KIMBERLY", "DEBORAH", "JESSICA",
+ "SHIRLEY", "CYNTHIA", "ANGELA", "MELISSA", "BRENDA", "AMY", "ANNA",
+ "REBECCA", "VIRGINIA", "KATHLEEN", "PAMELA", "MARTHA", "DEBRA",
+ "AMANDA", "STEPHANIE", "CAROLYN", "CHRISTINE", "MARIE", "JANET",
+ "CATHERINE", "FRANCES", "ANN", "JOYCE", "DIANE", "ALICE", "JULIE",
+ "HEATHER", "TERESA", "DORIS", "GLORIA", "EVELYN", "JEAN", "CHERYL",
+ "MILDRED", "KATHERINE", "JOAN", "ASHLEY", "JUDITH", "ROSE",
+ "JANICE", "KELLY", "NICOLE", "JUDY", "CHRISTINA", "KATHY",
+ "THERESA", "BEVERLY", "DENISE", "TAMMY", "IRENE", "JANE", "LORI",
+ "RACHEL", "MARILYN", "ANDREA", "KATHRYN", "LOUISE", "SARA", "ANNE",
+ "JACQUELINE", "WANDA", "BONNIE", "JULIA", "RUBY", "LOIS", "TINA",
+ "PHYLLIS", "NORMA", "PAULA", "DIANA", "ANNIE", "LILLIAN", "EMILY",
+ "ROBIN", "PEGGY", "CRYSTAL", "GLADYS", "RITA", "DAWN", "CONNIE",
+ "FLORENCE", "TRACY", "EDNA", "TIFFANY", "CARMEN", "ROSA", "CINDY",
+ "GRACE", "WENDY", "VICTORIA", "EDITH", "KIM", "SHERRY", "SYLVIA",
+ "JOSEPHINE", "THELMA", "SHANNON", "SHEILA", "ETHEL", "ELLEN",
+ "ELAINE", "MARJORIE", "CARRIE", "CHARLOTTE", "MONICA", "ESTHER",
+ "PAULINE", "EMMA", "JUANITA", "ANITA", "RHONDA", "HAZEL", "AMBER",
+ "EVA", "DEBBIE", "APRIL", "LESLIE", "CLARA", "LUCILLE", "JAMIE",
+ "JOANNE", "ELEANOR", "VALERIE", "DANIELLE", "MEGAN", "ALICIA",
+ "SUZANNE", "MICHELE", "GAIL", "BERTHA", "DARLENE", "VERONICA",
+ "JILL", "ERIN", "GERALDINE", "LAUREN", "CATHY", "JOANN", "LORRAINE",
+ "LYNN", "SALLY", "REGINA", "ERICA", "BEATRICE", "DOLORES",
+ "BERNICE", "AUDREY", "YVONNE", "ANNETTE", "JUNE", "SAMANTHA",
+ "MARION", "DANA", "STACY", "ANA", "RENEE", "IDA", "VIVIAN",
+ "ROBERTA", "HOLLY", "BRITTANY", "MELANIE", "LORETTA", "YOLANDA",
+ "JEANETTE", "LAURIE", "KATIE", "KRISTEN", "VANESSA", "ALMA", "SUE",
+ "ELSIE", "BETH", "JEANNE", "VICKI", "CARLA", "TARA", "ROSEMARY",
+ "EILEEN", "TERRI", "GERTRUDE", "LUCY", "TONYA", "ELLA", "STACEY",
+ "WILMA", "GINA", "KRISTIN", "JESSIE", "NATALIE", "AGNES", "VERA",
+ "WILLIE", "CHARLENE", "BESSIE", "DELORES", "MELINDA", "PEARL",
+ "ARLENE", "MAUREEN", "COLLEEN", "ALLISON", "TAMARA", "JOY",
+ "GEORGIA", "CONSTANCE", "LILLIE", "CLAUDIA", "JACKIE", "MARCIA",
+ "TANYA", "NELLIE", "MINNIE", "MARLENE", "HEIDI", "GLENDA", "LYDIA",
+ "VIOLA", "COURTNEY", "MARIAN", "STELLA", "CAROLINE", "DORA", "JO",
+ "VICKIE", "MATTIE", "TERRY", "MAXINE", "IRMA", "MABEL", "MARSHA",
+ "MYRTLE", "LENA", "CHRISTY", "DEANNA", "PATSY", "HILDA",
+ "GWENDOLYN", "JENNIE", "NORA", "MARGIE", "NINA", "CASSANDRA",
+ "LEAH", "PENNY", "KAY", "PRISCILLA", "NAOMI", "CAROLE", "BRANDY",
+ "OLGA", "BILLIE", "DIANNE", "TRACEY", "LEONA", "JENNY", "FELICIA",
+ "SONIA", "MIRIAM", "VELMA", "BECKY", "BOBBIE", "VIOLET", "KRISTINA",
+ "TONI", "MISTY", "MAE", "SHELLY", "DAISY", "RAMONA", "SHERRI",
+ "ERIKA", "KATRINA", "CLAIRE", "LINDSEY", "LINDSAY", "GENEVA",
+ "GUADALUPE", "BELINDA", "MARGARITA", "SHERYL", "CORA", "FAYE",
+ "ADA", "NATASHA", "SABRINA", "ISABEL", "MARGUERITE", "HATTIE",
+ "HARRIET", "MOLLY", "CECILIA", "KRISTI", "BRANDI", "BLANCHE",
+ "SANDY", "ROSIE", "JOANNA", "IRIS", "EUNICE", "ANGIE", "INEZ",
+ "LYNDA", "MADELINE", "AMELIA", "ALBERTA", "GENEVIEVE", "MONIQUE",
+ "JODI", "JANIE", "MAGGIE", "KAYLA", "SONYA", "JAN", "LEE",
+ "KRISTINE", "CANDACE", "FANNIE", "MARYANN", "OPAL", "ALISON",
+ "YVETTE", "MELODY", "LUZ", "SUSIE", "OLIVIA", "FLORA", "SHELLEY",
+ "KRISTY", "MAMIE", "LULA", "LOLA", "VERNA", "BEULAH", "ANTOINETTE",
+ "CANDICE", "JUANA", "JEANNETTE", "PAM", "KELLI", "HANNAH",
+ "WHITNEY", "BRIDGET", "KARLA", "CELIA", "LATOYA", "PATTY", "SHELIA",
+ "GAYLE", "DELLA", "VICKY", "LYNNE", "SHERI", "MARIANNE", "KARA",
+ "JACQUELYN", "ERMA", "BLANCA", "MYRA", "LETICIA", "PAT", "KRISTA",
+ "ROXANNE", "ANGELICA", "JOHNNIE", "ROBYN", "FRANCIS", "ADRIENNE",
+ "ROSALIE", "ALEXANDRA", "BROOKE", "BETHANY", "SADIE", "BERNADETTE",
+ "TRACI", "JODY", "KENDRA", "JASMINE", "NICHOLE", "RACHAEL",
+ "CHELSEA", "MABLE", "ERNESTINE", "MURIEL", "MARCELLA", "ELENA",
+ "KRYSTAL", "ANGELINA", "NADINE", "KARI", "ESTELLE", "DIANNA",
+ "PAULETTE", "LORA", "MONA", "DOREEN", "ROSEMARIE", "ANGEL",
+ "DESIREE", "ANTONIA", "HOPE", "GINGER", "JANIS", "BETSY",
+ "CHRISTIE", "FREDA", "MERCEDES", "MEREDITH", "LYNETTE", "TERI",
+ "CRISTINA", "EULA", "LEIGH", "MEGHAN", "SOPHIA", "ELOISE",
+ "ROCHELLE", "GRETCHEN", "CECELIA", "RAQUEL", "HENRIETTA", "ALYSSA",
+ "JANA", "KELLEY", "GWEN", "KERRY", "JENNA", "TRICIA", "LAVERNE",
+ "OLIVE", "ALEXIS", "TASHA", "SILVIA", "ELVIRA", "CASEY", "DELIA",
+ "SOPHIE", "KATE", "PATTI", "LORENA", "KELLIE", "SONJA", "LILA",
+ "LANA", "DARLA", "MAY", "MINDY", "ESSIE", "MANDY", "LORENE", "ELSA",
+ "JOSEFINA", "JEANNIE", "MIRANDA", "DIXIE", "LUCIA", "MARTA",
+ "FAITH", "LELA", "JOHANNA", "SHARI", "CAMILLE", "TAMI", "SHAWNA",
+ "ELISA", "EBONY", "MELBA", "ORA", "NETTIE", "TABITHA", "OLLIE",
+ "JAIME", "WINIFRED", "KRISTIE", "MARINA", "ALISHA", "AIMEE", "RENA",
+ "MYRNA", "MARLA", "TAMMIE", "LATASHA", "BONITA", "PATRICE", "RONDA",
+ "SHERRIE", "ADDIE", "FRANCINE", "DELORIS", "STACIE", "ADRIANA",
+ "CHERI", "SHELBY", "ABIGAIL", "CELESTE", "JEWEL", "CARA", "ADELE",
+ "REBEKAH", "LUCINDA", "DORTHY", "CHRIS", "EFFIE", "TRINA", "REBA",
+ "SHAWN", "SALLIE", "AURORA", "LENORA", "ETTA", "LOTTIE", "KERRI",
+ "TRISHA", "NIKKI", "ESTELLA", "FRANCISCA", "JOSIE", "TRACIE",
+ "MARISSA", "KARIN", "BRITTNEY", "JANELLE", "LOURDES", "LAUREL",
+ "HELENE", "FERN", "ELVA", "CORINNE", "KELSEY", "INA", "BETTIE",
+ "ELISABETH", "AIDA", "CAITLIN", "INGRID", "IVA", "EUGENIA",
+ "CHRISTA", "GOLDIE", "CASSIE", "MAUDE", "JENIFER", "THERESE",
+ "FRANKIE", "DENA", "LORNA", "JANETTE", "LATONYA", "CANDY", "MORGAN",
+ "CONSUELO", "TAMIKA", "ROSETTA", "DEBORA", "CHERIE", "POLLY",
+ "DINA", "JEWELL", "FAY", "JILLIAN", "DOROTHEA", "NELL", "TRUDY",
+ "ESPERANZA", "PATRICA", "KIMBERLEY", "SHANNA", "HELENA", "CAROLINA",
+ "CLEO", "STEFANIE", "ROSARIO", "OLA", "JANINE", "MOLLIE", "LUPE",
+ "ALISA", "LOU", "MARIBEL", "SUSANNE", "BETTE", "SUSANA", "ELISE",
+ "CECILE", "ISABELLE", "LESLEY", "JOCELYN", "PAIGE", "JONI",
+ "RACHELLE", "LEOLA", "DAPHNE", "ALTA", "ESTER", "PETRA", "GRACIELA",
+ "IMOGENE", "JOLENE", "KEISHA", "LACEY", "GLENNA", "GABRIELA",
+ "KERI", "URSULA", "LIZZIE", "KIRSTEN", "SHANA", "ADELINE", "MAYRA",
+ "JAYNE", "JACLYN", "GRACIE", "SONDRA", "CARMELA", "MARISA",
+ "ROSALIND", "CHARITY", "TONIA", "BEATRIZ", "MARISOL", "CLARICE",
+ "JEANINE", "SHEENA", "ANGELINE", "FRIEDA", "LILY", "ROBBIE",
+ "SHAUNA", "MILLIE", "CLAUDETTE", "CATHLEEN", "ANGELIA", "GABRIELLE",
+ "AUTUMN", "KATHARINE", "SUMMER", "JODIE", "STACI", "LEA", "CHRISTI",
+ "JIMMIE", "JUSTINE", "ELMA", "LUELLA", "MARGRET", "DOMINIQUE",
+ "SOCORRO", "RENE", "MARTINA", "MARGO", "MAVIS", "CALLIE", "BOBBI",
+ "MARITZA", "LUCILE", "LEANNE", "JEANNINE", "DEANA", "AILEEN",
+ "LORIE", "LADONNA", "WILLA", "MANUELA", "GALE", "SELMA", "DOLLY",
+ "SYBIL", "ABBY", "LARA", "DALE", "IVY", "DEE", "WINNIE", "MARCY",
+ "LUISA", "JERI", "MAGDALENA", "OFELIA", "MEAGAN", "AUDRA",
+ "MATILDA", "LEILA", "CORNELIA", "BIANCA", "SIMONE", "BETTYE",
+ "RANDI", "VIRGIE", "LATISHA", "BARBRA", "GEORGINA", "ELIZA",
+ "LEANN", "BRIDGETTE", "RHODA", "HALEY", "ADELA", "NOLA",
+ "BERNADINE", "FLOSSIE", "ILA", "GRETA", "RUTHIE", "NELDA",
+ "MINERVA", "LILLY", "TERRIE", "LETHA", "HILARY", "ESTELA",
+ "VALARIE", "BRIANNA", "ROSALYN", "EARLINE", "CATALINA", "AVA",
+ "MIA", "CLARISSA", "LIDIA", "CORRINE", "ALEXANDRIA", "CONCEPCION",
+ "TIA", "SHARRON", "RAE", "DONA", "ERICKA", "JAMI", "ELNORA",
+ "CHANDRA", "LENORE", "NEVA", "MARYLOU", "MELISA", "TABATHA",
+ "SERENA", "AVIS", "ALLIE", "SOFIA", "JEANIE", "ODESSA", "NANNIE",
+ "HARRIETT", "LORAINE", "PENELOPE", "MILAGROS", "EMILIA", "BENITA",
+ "ALLYSON", "ASHLEE", "TANIA", "TOMMIE", "ESMERALDA", "KARINA",
+ "EVE", "PEARLIE", "ZELMA", "MALINDA", "NOREEN", "TAMEKA", "SAUNDRA",
+ "HILLARY", "AMIE", "ALTHEA", "ROSALINDA", "JORDAN", "LILIA",
+ "ALANA", "GAY", "CLARE", "ALEJANDRA", "ELINOR", "MICHAEL", "LORRIE",
+ "JERRI", "DARCY", "EARNESTINE", "CARMELLA", "TAYLOR", "NOEMI",
+ "MARCIE", "LIZA", "ANNABELLE", "LOUISA", "EARLENE", "MALLORY",
+ "CARLENE", "NITA", "SELENA", "TANISHA", "KATY", "JULIANNE", "JOHN",
+ "LAKISHA", "EDWINA", "MARICELA", "MARGERY", "KENYA", "DOLLIE",
+ "ROXIE", "ROSLYN", "KATHRINE", "NANETTE", "CHARMAINE", "LAVONNE",
+ "ILENE", "KRIS", "TAMMI", "SUZETTE", "CORINE", "KAYE", "JERRY",
+ "MERLE", "CHRYSTAL", "LINA", "DEANNE", "LILIAN", "JULIANA", "ALINE",
+ "LUANN", "KASEY", "MARYANNE", "EVANGELINE", "COLETTE", "MELVA",
+ "LAWANDA", "YESENIA", "NADIA", "MADGE", "KATHIE", "EDDIE",
+ "OPHELIA", "VALERIA", "NONA", "MITZI", "MARI", "GEORGETTE",
+ "CLAUDINE", "FRAN", "ALISSA", "ROSEANN", "LAKEISHA", "SUSANNA",
+ "REVA", "DEIDRE", "CHASITY", "SHEREE", "CARLY", "JAMES", "ELVIA",
+ "ALYCE", "DEIRDRE", "GENA", "BRIANA", "ARACELI", "KATELYN",
+ "ROSANNE", "WENDI", "TESSA", "BERTA", "MARVA", "IMELDA", "MARIETTA",
+ "MARCI", "LEONOR", "ARLINE", "SASHA", "MADELYN", "JANNA",
+ "JULIETTE", "DEENA", "AURELIA", "JOSEFA", "AUGUSTA", "LILIANA",
+ "YOUNG", "CHRISTIAN", "LESSIE", "AMALIA", "SAVANNAH", "ANASTASIA",
+ "VILMA", "NATALIA", "ROSELLA", "LYNNETTE", "CORINA", "ALFREDA",
+ "LEANNA", "CAREY", "AMPARO", "COLEEN", "TAMRA", "AISHA", "WILDA",
+ "KARYN", "CHERRY", "QUEEN", "MAURA", "MAI", "EVANGELINA", "ROSANNA",
+ "HALLIE", "ERNA", "ENID", "MARIANA", "LACY", "JULIET", "JACKLYN",
+ "FREIDA", "MADELEINE", "MARA", "HESTER", "CATHRYN", "LELIA",
+ "CASANDRA", "BRIDGETT", "ANGELITA", "JANNIE", "DIONNE", "ANNMARIE",
+ "KATINA", "BERYL", "PHOEBE", "MILLICENT", "KATHERYN", "DIANN",
+ "CARISSA", "MARYELLEN", "LIZ", "LAURI", "HELGA", "GILDA", "ADRIAN",
+ "RHEA", "MARQUITA", "HOLLIE", "TISHA", "TAMERA", "ANGELIQUE",
+ "FRANCESCA", "BRITNEY", "KAITLIN", "LOLITA", "FLORINE", "ROWENA",
+ "REYNA", "TWILA", "FANNY", "JANELL", "INES", "CONCETTA", "BERTIE",
+ "ALBA", "BRIGITTE", "ALYSON", "VONDA", "PANSY", "ELBA", "NOELLE",
+ "LETITIA", "KITTY", "DEANN", "BRANDIE", "LOUELLA", "LETA",
+ "FELECIA", "SHARLENE", "LESA", "BEVERLEY", "ROBERT", "ISABELLA",
+ "HERMINIA", "TERRA", "CELINA", "TORI", "OCTAVIA", "JADE", "DENICE",
+ "GERMAINE", "SIERRA", "MICHELL", "CORTNEY", "NELLY", "DORETHA",
+ "SYDNEY", "DEIDRA", "MONIKA", "LASHONDA", "JUDI", "CHELSEY",
+ "ANTIONETTE", "MARGOT", "BOBBY", "ADELAIDE", "NAN", "LEEANN",
+ "ELISHA", "DESSIE", "LIBBY", "KATHI", "GAYLA", "LATANYA", "MINA",
+ "MELLISA", "KIMBERLEE", "JASMIN", "RENAE", "ZELDA", "ELDA", "MA",
+ "JUSTINA", "GUSSIE", "EMILIE", "CAMILLA", "ABBIE", "ROCIO",
+ "KAITLYN", "JESSE", "EDYTHE", "ASHLEIGH", "SELINA", "LAKESHA",
+ "GERI", "ALLENE", "PAMALA", "MICHAELA", "DAYNA", "CARYN", "ROSALIA",
+ "SUN", "JACQULINE", "REBECA", "MARYBETH", "KRYSTLE", "IOLA",
+ "DOTTIE", "BENNIE", "BELLE", "AUBREY", "GRISELDA", "ERNESTINA",
+ "ELIDA", "ADRIANNE", "DEMETRIA", "DELMA", "CHONG", "JAQUELINE",
+ "DESTINY", "ARLEEN", "VIRGINA", "RETHA", "FATIMA", "TILLIE",
+ "ELEANORE", "CARI", "TREVA", "BIRDIE", "WILHELMINA", "ROSALEE",
+ "MAURINE", "LATRICE", "YONG", "JENA", "TARYN", "ELIA", "DEBBY",
+ "MAUDIE", "JEANNA", "DELILAH", "CATRINA", "SHONDA", "HORTENCIA",
+ "THEODORA", "TERESITA", "ROBBIN", "DANETTE", "MARYJANE", "FREDDIE",
+ "DELPHINE", "BRIANNE", "NILDA", "DANNA", "CINDI", "BESS", "IONA",
+ "HANNA", "ARIEL", "WINONA", "VIDA", "ROSITA", "MARIANNA", "WILLIAM",
+ "RACHEAL", "GUILLERMINA", "ELOISA", "CELESTINE", "CAREN", "MALISSA",
+ "LONA", "CHANTEL", "SHELLIE", "MARISELA", "LEORA", "AGATHA",
+ "SOLEDAD", "MIGDALIA", "IVETTE", "CHRISTEN", "ATHENA", "JANEL",
+ "CHLOE", "VEDA", "PATTIE", "TESSIE", "TERA", "MARILYNN", "LUCRETIA",
+ "KARRIE", "DINAH", "DANIELA", "ALECIA", "ADELINA", "VERNICE",
+ "SHIELA", "PORTIA", "MERRY", "LASHAWN", "DEVON", "DARA", "TAWANA",
+ "OMA", "VERDA", "CHRISTIN", "ALENE", "ZELLA", "SANDI", "RAFAELA",
+ "MAYA", "KIRA", "CANDIDA", "ALVINA", "SUZAN", "SHAYLA", "LYN",
+ "LETTIE", "ALVA", "SAMATHA", "ORALIA", "MATILDE", "MADONNA",
+ "LARISSA", "VESTA", "RENITA", "INDIA", "DELOIS", "SHANDA",
+ "PHILLIS", "LORRI", "ERLINDA", "CRUZ", "CATHRINE", "BARB", "ZOE",
+ "ISABELL", "IONE", "GISELA", "CHARLIE", "VALENCIA", "ROXANNA",
+ "MAYME", "KISHA", "ELLIE", "MELLISSA", "DORRIS", "DALIA", "BELLA",
+ "ANNETTA", "ZOILA", "RETA", "REINA", "LAURETTA", "KYLIE",
+ "CHRISTAL", "PILAR", "CHARLA", "ELISSA", "TIFFANI", "TANA",
+ "PAULINA", "LEOTA", "BREANNA", "JAYME", "CARMEL", "VERNELL",
+ "TOMASA", "MANDI", "DOMINGA", "SANTA", "MELODIE", "LURA", "ALEXA",
+ "TAMELA", "RYAN", "MIRNA", "KERRIE", "VENUS", "NOEL", "FELICITA",
+ "CRISTY", "CARMELITA", "BERNIECE", "ANNEMARIE", "TIARA", "ROSEANNE",
+ "MISSY", "CORI", "ROXANA", "PRICILLA", "KRISTAL", "JUNG", "ELYSE",
+ "HAYDEE", "ALETHA", "BETTINA", "MARGE", "GILLIAN", "FILOMENA",
+ "CHARLES", "ZENAIDA", "HARRIETTE", "CARIDAD", "VADA", "UNA",
+ "ARETHA", "PEARLINE", "MARJORY", "MARCELA", "FLOR", "EVETTE",
+ "ELOUISE", "ALINA", "TRINIDAD", "DAVID", "DAMARIS", "CATHARINE",
+ "CARROLL", "BELVA", "NAKIA", "MARLENA", "LUANNE", "LORINE", "KARON",
+ "DORENE", "DANITA", "BRENNA", "TATIANA", "SAMMIE", "LOUANN",
+ "LOREN", "JULIANNA", "ANDRIA", "PHILOMENA", "LUCILA", "LEONORA",
+ "DOVIE", "ROMONA", "MIMI", "JACQUELIN", "GAYE", "TONJA", "MISTI",
+ "JOE", "GENE", "CHASTITY", "STACIA", "ROXANN", "MICAELA", "NIKITA",
+ "MEI", "VELDA", "MARLYS", "JOHNNA", "AURA", "LAVERN", "IVONNE",
+ "HAYLEY", "NICKI", "MAJORIE", "HERLINDA", "GEORGE", "ALPHA",
+ "YADIRA", "PERLA", "GREGORIA", "DANIEL", "ANTONETTE", "SHELLI",
+ "MOZELLE", "MARIAH", "JOELLE", "CORDELIA", "JOSETTE", "CHIQUITA",
+ "TRISTA", "LOUIS", "LAQUITA", "GEORGIANA", "CANDI", "SHANON",
+ "LONNIE", "HILDEGARD", "CECIL", "VALENTINA", "STEPHANY", "MAGDA",
+ "KAROL", "GERRY", "GABRIELLA", "TIANA", "ROMA", "RICHELLE", "RAY",
+ "PRINCESS", "OLETA", "JACQUE", "IDELLA", "ALAINA", "SUZANNA",
+ "JOVITA", "BLAIR", "TOSHA", "RAVEN", "NEREIDA", "MARLYN", "KYLA",
+ "JOSEPH", "DELFINA", "TENA", "STEPHENIE", "SABINA", "NATHALIE",
+ "MARCELLE", "GERTIE", "DARLEEN", "THEA", "SHARONDA", "SHANTEL",
+ "BELEN", "VENESSA", "ROSALINA", "ONA", "GENOVEVA", "COREY",
+ "CLEMENTINE", "ROSALBA", "RENATE", "RENATA", "MI", "IVORY",
+ "GEORGIANNA", "FLOY", "DORCAS", "ARIANA", "TYRA", "THEDA", "MARIAM",
+ "JULI", "JESICA", "DONNIE", "VIKKI", "VERLA", "ROSELYN", "MELVINA",
+ "JANNETTE", "GINNY", "DEBRAH", "CORRIE", "ASIA", "VIOLETA",
+ "MYRTIS", "LATRICIA", "COLLETTE", "CHARLEEN", "ANISSA", "VIVIANA",
+ "TWYLA", "PRECIOUS", "NEDRA", "LATONIA", "LAN", "HELLEN", "FABIOLA",
+ "ANNAMARIE", "ADELL", "SHARYN", "CHANTAL", "NIKI", "MAUD",
+ "LIZETTE", "LINDY", "KIA", "KESHA", "JEANA", "DANELLE", "CHARLINE",
+ "CHANEL", "CARROL", "VALORIE", "LIA", "DORTHA", "CRISTAL", "SUNNY",
+ "LEONE", "LEILANI", "GERRI", "DEBI", "ANDRA", "KESHIA", "IMA",
+ "EULALIA", "EASTER", "DULCE", "NATIVIDAD", "LINNIE", "KAMI",
+ "GEORGIE", "CATINA", "BROOK", "ALDA", "WINNIFRED", "SHARLA",
+ "RUTHANN", "MEAGHAN", "MAGDALENE", "LISSETTE", "ADELAIDA", "VENITA",
+ "TRENA", "SHIRLENE", "SHAMEKA", "ELIZEBETH", "DIAN", "SHANTA",
+ "MICKEY", "LATOSHA", "CARLOTTA", "WINDY", "SOON", "ROSINA",
+ "MARIANN", "LEISA", "JONNIE", "DAWNA", "CATHIE", "BILLY", "ASTRID",
+ "SIDNEY", "LAUREEN", "JANEEN", "HOLLI", "FAWN", "VICKEY", "TERESSA",
+ "SHANTE", "RUBYE", "MARCELINA", "CHANDA", "CARY", "TERESE",
+ "SCARLETT", "MARTY", "MARNIE", "LULU", "LISETTE", "JENIFFER",
+ "ELENOR", "DORINDA", "DONITA", "CARMAN", "BERNITA", "ALTAGRACIA",
+ "ALETA", "ADRIANNA", "ZORAIDA", "RONNIE", "NICOLA", "LYNDSEY",
+ "KENDALL", "JANINA", "CHRISSY", "AMI", "STARLA", "PHYLIS", "PHUONG",
+ "KYRA", "CHARISSE", "BLANCH", "SANJUANITA", "RONA", "NANCI",
+ "MARILEE", "MARANDA", "CORY", "BRIGETTE", "SANJUANA", "MARITA",
+ "KASSANDRA", "JOYCELYN", "IRA", "FELIPA", "CHELSIE", "BONNY",
+ "MIREYA", "LORENZA", "KYONG", "ILEANA", "CANDELARIA", "TONY",
+ "TOBY", "SHERIE", "OK", "MARK", "LUCIE", "LEATRICE", "LAKESHIA",
+ "GERDA", "EDIE", "BAMBI", "MARYLIN", "LAVON", "HORTENSE", "GARNET",
+ "EVIE", "TRESSA", "SHAYNA", "LAVINA", "KYUNG", "JEANETTA",
+ "SHERRILL", "SHARA", "PHYLISS", "MITTIE", "ANABEL", "ALESIA",
+ "THUY", "TAWANDA", "RICHARD", "JOANIE", "TIFFANIE", "LASHANDA",
+ "KARISSA", "ENRIQUETA", "DARIA", "DANIELLA", "CORINNA", "ALANNA",
+ "ABBEY", "ROXANE", "ROSEANNA", "MAGNOLIA", "LIDA", "KYLE",
+ "JOELLEN", "ERA", "CORAL", "CARLEEN", "TRESA", "PEGGIE", "NOVELLA",
+ "NILA", "MAYBELLE", "JENELLE", "CARINA", "NOVA", "MELINA",
+ "MARQUERITE", "MARGARETTE", "JOSEPHINA", "EVONNE", "DEVIN",
+ "CINTHIA", "ALBINA", "TOYA", "TAWNYA", "SHERITA", "SANTOS",
+ "MYRIAM", "LIZABETH", "LISE", "KEELY", "JENNI", "GISELLE",
+ "CHERYLE", "ARDITH", "ARDIS", "ALESHA", "ADRIANE", "SHAINA",
+ "LINNEA", "KAROLYN", "HONG", "FLORIDA", "FELISHA", "DORI", "DARCI",
+ "ARTIE", "ARMIDA", "ZOLA", "XIOMARA", "VERGIE", "SHAMIKA", "NENA",
+ "NANNETTE", "MAXIE", "LOVIE", "JEANE", "JAIMIE", "INGE", "FARRAH",
+ "ELAINA", "CAITLYN", "STARR", "FELICITAS", "CHERLY", "CARYL",
+ "YOLONDA", "YASMIN", "TEENA", "PRUDENCE", "PENNIE", "NYDIA",
+ "MACKENZIE", "ORPHA", "MARVEL", "LIZBETH", "LAURETTE", "JERRIE",
+ "HERMELINDA", "CAROLEE", "TIERRA", "MIRIAN", "META", "MELONY",
+ "KORI", "JENNETTE", "JAMILA", "ENA", "ANH", "YOSHIKO", "SUSANNAH",
+ "SALINA", "RHIANNON", "JOLEEN", "CRISTINE", "ASHTON", "ARACELY",
+ "TOMEKA", "SHALONDA", "MARTI", "LACIE", "KALA", "JADA", "ILSE",
+ "HAILEY", "BRITTANI", "ZONA", "SYBLE", "SHERRYL", "RANDY", "NIDIA",
+ "MARLO", "KANDICE", "KANDI", "DEB", "DEAN", "AMERICA", "ALYCIA",
+ "TOMMY", "RONNA", "NORENE", "MERCY", "JOSE", "INGEBORG", "GIOVANNA",
+ "GEMMA", "CHRISTEL", "AUDRY", "ZORA", "VITA", "VAN", "TRISH",
+ "STEPHAINE", "SHIRLEE", "SHANIKA", "MELONIE", "MAZIE", "JAZMIN",
+ "INGA", "HOA", "HETTIE", "GERALYN", "FONDA", "ESTRELLA", "ADELLA",
+ "SU", "SARITA", "RINA", "MILISSA", "MARIBETH", "GOLDA", "EVON",
+ "ETHELYN", "ENEDINA", "CHERISE", "CHANA", "VELVA", "TAWANNA",
+ "SADE", "MIRTA", "LI", "KARIE", "JACINTA", "ELNA", "DAVINA",
+ "CIERRA", "ASHLIE", "ALBERTHA", "TANESHA", "STEPHANI", "NELLE",
+ "MINDI", "LU", "LORINDA", "LARUE", "FLORENE", "DEMETRA", "DEDRA",
+ "CIARA", "CHANTELLE", "ASHLY", "SUZY", "ROSALVA", "NOELIA", "LYDA",
+ "LEATHA", "KRYSTYNA", "KRISTAN", "KARRI", "DARLINE", "DARCIE",
+ "CINDA", "CHEYENNE", "CHERRIE", "AWILDA", "ALMEDA", "ROLANDA",
+ "LANETTE", "JERILYN", "GISELE", "EVALYN", "CYNDI", "CLETA", "CARIN",
+ "ZINA", "ZENA", "VELIA", "TANIKA", "PAUL", "CHARISSA", "THOMAS",
+ "TALIA", "MARGARETE", "LAVONDA", "KAYLEE", "KATHLENE", "JONNA",
+ "IRENA", "ILONA", "IDALIA", "CANDIS", "CANDANCE", "BRANDEE",
+ "ANITRA", "ALIDA", "SIGRID", "NICOLETTE", "MARYJO", "LINETTE",
+ "HEDWIG", "CHRISTIANA", "CASSIDY", "ALEXIA", "TRESSIE", "MODESTA",
+ "LUPITA", "LITA", "GLADIS", "EVELIA", "DAVIDA", "CHERRI", "CECILY",
+ "ASHELY", "ANNABEL", "AGUSTINA", "WANITA", "SHIRLY", "ROSAURA",
+ "HULDA", "EUN", "BAILEY", "YETTA", "VERONA", "THOMASINA", "SIBYL",
+ "SHANNAN", "MECHELLE", "LUE", "LEANDRA", "LANI", "KYLEE", "KANDY",
+ "JOLYNN", "FERNE", "EBONI", "CORENE", "ALYSIA", "ZULA", "NADA",
+ "MOIRA", "LYNDSAY", "LORRETTA", "JUAN", "JAMMIE", "HORTENSIA",
+ "GAYNELL", "CAMERON", "ADRIA", "VINA", "VICENTA", "TANGELA",
+ "STEPHINE", "NORINE", "NELLA", "LIANA", "LESLEE", "KIMBERELY",
+ "ILIANA", "GLORY", "FELICA", "EMOGENE", "ELFRIEDE", "EDEN",
+ "EARTHA", "CARMA", "BEA", "OCIE", "MARRY", "LENNIE", "KIARA",
+ "JACALYN", "CARLOTA", "ARIELLE", "YU", "STAR", "OTILIA", "KIRSTIN",
+ "KACEY", "JOHNETTA", "JOEY", "JOETTA", "JERALDINE", "JAUNITA",
+ "ELANA", "DORTHEA", "CAMI", "AMADA", "ADELIA", "VERNITA", "TAMAR",
+ "SIOBHAN", "RENEA", "RASHIDA", "OUIDA", "ODELL", "NILSA", "MERYL",
+ "KRISTYN", "JULIETA", "DANICA", "BREANNE", "AUREA", "ANGLEA",
+ "SHERRON", "ODETTE", "MALIA", "LORELEI", "LIN", "LEESA", "KENNA",
+ "KATHLYN", "FIONA", "CHARLETTE", "SUZIE", "SHANTELL", "SABRA",
+ "RACQUEL", "MYONG", "MIRA", "MARTINE", "LUCIENNE", "LAVADA",
+ "JULIANN", "JOHNIE", "ELVERA", "DELPHIA", "CLAIR", "CHRISTIANE",
+ "CHAROLETTE", "CARRI", "AUGUSTINE", "ASHA", "ANGELLA", "PAOLA",
+ "NINFA", "LEDA", "LAI", "EDA", "SUNSHINE", "STEFANI", "SHANELL",
+ "PALMA", "MACHELLE", "LISSA", "KECIA", "KATHRYNE", "KARLENE",
+ "JULISSA", "JETTIE", "JENNIFFER", "HUI", "CORRINA", "CHRISTOPHER",
+ "CAROLANN", "ALENA", "TESS", "ROSARIA", "MYRTICE", "MARYLEE",
+ "LIANE", "KENYATTA", "JUDIE", "JANEY", "IN", "ELMIRA", "ELDORA",
+ "DENNA", "CRISTI", "CATHI", "ZAIDA", "VONNIE", "VIVA", "VERNIE",
+ "ROSALINE", "MARIELA", "LUCIANA", "LESLI", "KARAN", "FELICE",
+ "DENEEN", "ADINA", "WYNONA", "TARSHA", "SHERON", "SHASTA",
+ "SHANITA", "SHANI", "SHANDRA", "RANDA", "PINKIE", "PARIS", "NELIDA",
+ "MARILOU", "LYLA", "LAURENE", "LACI", "JOI", "JANENE", "DOROTHA",
+ "DANIELE", "DANI", "CAROLYNN", "CARLYN", "BERENICE", "AYESHA",
+ "ANNELIESE", "ALETHEA", "THERSA", "TAMIKO", "RUFINA", "OLIVA",
+ "MOZELL", "MARYLYN", "MADISON", "KRISTIAN", "KATHYRN", "KASANDRA",
+ "KANDACE", "JANAE", "GABRIEL", "DOMENICA", "DEBBRA", "DANNIELLE",
+ "CHUN", "BUFFY", "BARBIE", "ARCELIA", "AJA", "ZENOBIA", "SHAREN",
+ "SHAREE", "PATRICK", "PAGE", "MY", "LAVINIA", "KUM", "KACIE",
+ "JACKELINE", "HUONG", "FELISA", "EMELIA", "ELEANORA", "CYTHIA",
+ "CRISTIN", "CLYDE", "CLARIBEL", "CARON", "ANASTACIA", "ZULMA",
+ "ZANDRA", "YOKO", "TENISHA", "SUSANN", "SHERILYN", "SHAY",
+ "SHAWANDA", "SABINE", "ROMANA", "MATHILDA", "LINSEY", "KEIKO",
+ "JOANA", "ISELA", "GRETTA", "GEORGETTA", "EUGENIE", "DUSTY",
+ "DESIRAE", "DELORA", "CORAZON", "ANTONINA", "ANIKA", "WILLENE",
+ "TRACEE", "TAMATHA", "REGAN", "NICHELLE", "MICKIE", "MAEGAN",
+ "LUANA", "LANITA", "KELSIE", "EDELMIRA", "BREE", "AFTON", "TEODORA",
+ "TAMIE", "SHENA", "MEG", "LINH", "KELI", "KACI", "DANYELLE",
+ "BRITT", "ARLETTE", "ALBERTINE", "ADELLE", "TIFFINY", "STORMY",
+ "SIMONA", "NUMBERS", "NICOLASA", "NICHOL", "NIA", "NAKISHA", "MEE",
+ "MAIRA", "LOREEN", "KIZZY", "JOHNNY", "JAY", "FALLON", "CHRISTENE",
+ "BOBBYE", "ANTHONY", "YING", "VINCENZA", "TANJA", "RUBIE", "RONI",
+ "QUEENIE", "MARGARETT", "KIMBERLI", "IRMGARD", "IDELL", "HILMA",
+ "EVELINA", "ESTA", "EMILEE", "DENNISE", "DANIA", "CARL", "CARIE",
+ "ANTONIO", "WAI", "SANG", "RISA", "RIKKI", "PARTICIA", "MUI",
+ "MASAKO", "MARIO", "LUVENIA", "LOREE", "LONI", "LIEN", "KEVIN",
+ "GIGI", "FLORENCIA", "DORIAN", "DENITA", "DALLAS", "CHI", "BILLYE",
+ "ALEXANDER", "TOMIKA", "SHARITA", "RANA", "NIKOLE", "NEOMA",
+ "MARGARITE", "MADALYN", "LUCINA", "LAILA", "KALI", "JENETTE",
+ "GABRIELE", "EVELYNE", "ELENORA", "CLEMENTINA", "ALEJANDRINA",
+ "ZULEMA", "VIOLETTE", "VANNESSA", "THRESA", "RETTA", "PIA",
+ "PATIENCE", "NOELLA", "NICKIE", "JONELL", "DELTA", "CHUNG", "CHAYA",
+ "CAMELIA", "BETHEL", "ANYA", "ANDREW", "THANH", "SUZANN", "SPRING",
+ "SHU", "MILA", "LILLA", "LAVERNA", "KEESHA", "KATTIE", "GIA",
+ "GEORGENE", "EVELINE", "ESTELL", "ELIZBETH", "VIVIENNE", "VALLIE",
+ "TRUDIE", "STEPHANE", "MICHEL", "MAGALY", "MADIE", "KENYETTA",
+ "KARREN", "JANETTA", "HERMINE", "HARMONY", "DRUCILLA", "DEBBI",
+ "CELESTINA", "CANDIE", "BRITNI", "BECKIE", "AMINA", "ZITA", "YUN",
+ "YOLANDE", "VIVIEN", "VERNETTA", "TRUDI", "SOMMER", "PEARLE",
+ "PATRINA", "OSSIE", "NICOLLE", "LOYCE", "LETTY", "LARISA",
+ "KATHARINA", "JOSELYN", "JONELLE", "JENELL", "IESHA", "HEIDE",
+ "FLORINDA", "FLORENTINA", "FLO", "ELODIA", "DORINE", "BRUNILDA",
+ "BRIGID", "ASHLI", "ARDELLA", "TWANA", "THU", "TARAH", "SUNG",
+ "SHEA", "SHAVON", "SHANE", "SERINA", "RAYNA", "RAMONITA", "NGA",
+ "MARGURITE", "LUCRECIA", "KOURTNEY", "KATI", "JESUS", "JESENIA",
+ "DIAMOND", "CRISTA", "AYANA", "ALICA", "ALIA", "VINNIE", "SUELLEN",
+ "ROMELIA", "RACHELL", "PIPER", "OLYMPIA", "MICHIKO", "KATHALEEN",
+ "JOLIE", "JESSI", "JANESSA", "HANA", "HA", "ELEASE", "CARLETTA",
+ "BRITANY", "SHONA", "SALOME", "ROSAMOND", "REGENA", "RAINA", "NGOC",
+ "NELIA", "LOUVENIA", "LESIA", "LATRINA", "LATICIA", "LARHONDA",
+ "JINA", "JACKI", "HOLLIS", "HOLLEY", "EMMY", "DEEANN", "CORETTA",
+ "ARNETTA", "VELVET", "THALIA", "SHANICE", "NETA", "MIKKI", "MICKI",
+ "LONNA", "LEANA", "LASHUNDA", "KILEY", "JOYE", "JACQULYN",
+ "IGNACIA", "HYUN", "HIROKO", "HENRY", "HENRIETTE", "ELAYNE",
+ "DELINDA", "DARNELL", "DAHLIA", "COREEN", "CONSUELA", "CONCHITA",
+ "CELINE", "BABETTE", "AYANNA", "ANETTE", "ALBERTINA", "SKYE",
+ "SHAWNEE", "SHANEKA", "QUIANA", "PAMELIA", "MIN", "MERRI",
+ "MERLENE", "MARGIT", "KIESHA", "KIERA", "KAYLENE", "JODEE",
+ "JENISE", "ERLENE", "EMMIE", "ELSE", "DARYL", "DALILA", "DAISEY",
+ "CODY", "CASIE", "BELIA", "BABARA", "VERSIE", "VANESA", "SHELBA",
+ "SHAWNDA", "SAM", "NORMAN", "NIKIA", "NAOMA", "MARNA", "MARGERET",
+ "MADALINE", "LAWANA", "KINDRA", "JUTTA", "JAZMINE", "JANETT",
+ "HANNELORE", "GLENDORA", "GERTRUD", "GARNETT", "FREEDA",
+ "FREDERICA", "FLORANCE", "FLAVIA", "DENNIS", "CARLINE", "BEVERLEE",
+ "ANJANETTE", "VALDA", "TRINITY", "TAMALA", "STEVIE", "SHONNA",
+ "SHA", "SARINA", "ONEIDA", "MICAH", "MERILYN", "MARLEEN", "LURLINE",
+ "LENNA", "KATHERIN", "JIN", "JENI", "HAE", "GRACIA", "GLADY",
+ "FARAH", "ERIC", "ENOLA", "EMA", "DOMINQUE", "DEVONA", "DELANA",
+ "CECILA", "CAPRICE", "ALYSHA", "ALI", "ALETHIA", "VENA", "THERESIA",
+ "TAWNY", "SONG", "SHAKIRA", "SAMARA", "SACHIKO", "RACHELE",
+ "PAMELLA", "NICKY", "MARNI", "MARIEL", "MAREN", "MALISA", "LIGIA",
+ "LERA", "LATORIA", "LARAE", "KIMBER", "KATHERN", "KAREY",
+ "JENNEFER", "JANETH", "HALINA", "FREDIA", "DELISA", "DEBROAH",
+ "CIERA", "CHIN", "ANGELIKA", "ANDREE", "ALTHA", "YEN", "VIVAN",
+ "TERRESA", "TANNA", "SUK", "SUDIE", "SOO", "SIGNE", "SALENA",
+ "RONNI", "REBBECCA", "MYRTIE", "MCKENZIE", "MALIKA", "MAIDA",
+ "LOAN", "LEONARDA", "KAYLEIGH", "FRANCE", "ETHYL", "ELLYN", "DAYLE",
+ "CAMMIE", "BRITTNI", "BIRGIT", "AVELINA", "ASUNCION", "ARIANNA",
+ "AKIKO", "VENICE", "TYESHA", "TONIE", "TIESHA", "TAKISHA",
+ "STEFFANIE", "SINDY", "SANTANA", "MEGHANN", "MANDA", "MACIE",
+ "LADY", "KELLYE", "KELLEE", "JOSLYN", "JASON", "INGER", "INDIRA",
+ "GLINDA", "GLENNIS", "FERNANDA", "FAUSTINA", "ENEIDA", "ELICIA",
+ "DOT", "DIGNA", "DELL", "ARLETTA", "ANDRE", "WILLIA", "TAMMARA",
+ "TABETHA", "SHERRELL", "SARI", "REFUGIO", "REBBECA", "PAULETTA",
+ "NIEVES", "NATOSHA", "NAKITA", "MAMMIE", "KENISHA", "KAZUKO",
+ "KASSIE", "GARY", "EARLEAN", "DAPHINE", "CORLISS", "CLOTILDE",
+ "CAROLYNE", "BERNETTA", "AUGUSTINA", "AUDREA", "ANNIS", "ANNABELL",
+ "YAN", "TENNILLE", "TAMICA", "SELENE", "SEAN", "ROSANA", "REGENIA",
+ "QIANA", "MARKITA", "MACY", "LEEANNE", "LAURINE", "KYM", "JESSENIA",
+ "JANITA", "GEORGINE", "GENIE", "EMIKO", "ELVIE", "DEANDRA",
+ "DAGMAR", "CORIE", "COLLEN", "CHERISH", "ROMAINE", "PORSHA",
+ "PEARLENE", "MICHELINE", "MERNA", "MARGORIE", "MARGARETTA", "LORE",
+ "KENNETH", "JENINE", "HERMINA", "FREDERICKA", "ELKE", "DRUSILLA",
+ "DORATHY", "DIONE", "DESIRE", "CELENA", "BRIGIDA", "ANGELES",
+ "ALLEGRA", "THEO", "TAMEKIA", "SYNTHIA", "STEPHEN", "SOOK",
+ "SLYVIA", "ROSANN", "REATHA", "RAYE", "MARQUETTA", "MARGART",
+ "LING", "LAYLA", "KYMBERLY", "KIANA", "KAYLEEN", "KATLYN", "KARMEN",
+ "JOELLA", "IRINA", "EMELDA", "ELENI", "DETRA", "CLEMMIE", "CHERYLL",
+ "CHANTELL", "CATHEY", "ARNITA", "ARLA", "ANGLE", "ANGELIC", "ALYSE",
+ "ZOFIA", "THOMASINE", "TENNIE", "SON", "SHERLY", "SHERLEY",
+ "SHARYL", "REMEDIOS", "PETRINA", "NICKOLE", "MYUNG", "MYRLE",
+ "MOZELLA", "LOUANNE", "LISHA", "LATIA", "LANE", "KRYSTA",
+ "JULIENNE", "JOEL", "JEANENE", "JACQUALINE", "ISAURA", "GWENDA",
+ "EARLEEN", "DONALD", "CLEOPATRA", "CARLIE", "AUDIE", "ANTONIETTA",
+ "ALISE", "ALEX", "VERDELL", "VAL", "TYLER", "TOMOKO", "THAO",
+ "TALISHA", "STEVEN", "SO", "SHEMIKA", "SHAUN", "SCARLET", "SAVANNA",
+ "SANTINA", "ROSIA", "RAEANN", "ODILIA", "NANA", "MINNA", "MAGAN",
+ "LYNELLE", "LE", "KARMA", "JOEANN", "IVANA", "INELL", "ILANA",
+ "HYE", "HONEY", "HEE", "GUDRUN", "FRANK", "DREAMA", "CRISSY",
+ "CHANTE", "CARMELINA", "ARVILLA", "ARTHUR", "ANNAMAE", "ALVERA",
+ "ALEIDA", "AARON", "YEE", "YANIRA", "VANDA", "TIANNA", "TAM",
+ "STEFANIA", "SHIRA", "PERRY", "NICOL", "NANCIE", "MONSERRATE",
+ "MINH", "MELYNDA", "MELANY", "MATTHEW", "LOVELLA", "LAURE", "KIRBY",
+ "KACY", "JACQUELYNN", "HYON", "GERTHA", "FRANCISCO", "ELIANA",
+ "CHRISTENA", "CHRISTEEN", "CHARISE", "CATERINA", "CARLEY",
+ "CANDYCE", "ARLENA", "AMMIE", "YANG", "WILLETTE", "VANITA", "TUYET",
+ "TINY", "SYREETA", "SILVA", "SCOTT", "RONALD", "PENNEY", "NYLA",
+ "MICHAL", "MAURICE", "MARYAM", "MARYA", "MAGEN", "LUDIE", "LOMA",
+ "LIVIA", "LANELL", "KIMBERLIE", "JULEE", "DONETTA", "DIEDRA",
+ "DENISHA", "DEANE", "DAWNE", "CLARINE", "CHERRYL", "BRONWYN",
+ "BRANDON", "ALLA", "VALERY", "TONDA", "SUEANN", "SORAYA",
+ "SHOSHANA", "SHELA", "SHARLEEN", "SHANELLE", "NERISSA", "MICHEAL",
+ "MERIDITH", "MELLIE", "MAYE", "MAPLE", "MAGARET", "LUIS", "LILI",
+ "LEONILA", "LEONIE", "LEEANNA", "LAVONIA", "LAVERA", "KRISTEL",
+ "KATHEY", "KATHE", "JUSTIN", "JULIAN", "JIMMY", "JANN", "ILDA",
+ "HILDRED", "HILDEGARDE", "GENIA", "FUMIKO", "EVELIN", "ERMELINDA",
+ "ELLY", "DUNG", "DOLORIS", "DIONNA", "DANAE", "BERNEICE", "ANNICE",
+ "ALIX", "VERENA", "VERDIE", "TRISTAN", "SHAWNNA", "SHAWANA",
+ "SHAUNNA", "ROZELLA", "RANDEE", "RANAE", "MILAGRO", "LYNELL",
+ "LUISE", "LOUIE", "LOIDA", "LISBETH", "KARLEEN", "JUNITA", "JONA",
+ "ISIS", "HYACINTH", "HEDY", "GWENN", "ETHELENE", "ERLINE", "EDWARD",
+ "DONYA", "DOMONIQUE", "DELICIA", "DANNETTE", "CICELY", "BRANDA",
+ "BLYTHE", "BETHANN", "ASHLYN", "ANNALEE", "ALLINE", "YUKO", "VELLA",
+ "TRANG", "TOWANDA", "TESHA", "SHERLYN", "NARCISA", "MIGUELINA",
+ "MERI", "MAYBELL", "MARLANA", "MARGUERITA", "MADLYN", "LUNA",
+ "LORY", "LORIANN", "LIBERTY", "LEONORE", "LEIGHANN", "LAURICE",
+ "LATESHA", "LARONDA", "KATRICE", "KASIE", "KARL", "KALEY",
+ "JADWIGA", "GLENNIE", "GEARLDINE", "FRANCINA", "EPIFANIA", "DYAN",
+ "DORIE", "DIEDRE", "DENESE", "DEMETRICE", "DELENA", "DARBY",
+ "CRISTIE", "CLEORA", "CATARINA", "CARISA", "BERNIE", "BARBERA",
+ "ALMETA", "TRULA", "TEREASA", "SOLANGE", "SHEILAH", "SHAVONNE",
+ "SANORA", "ROCHELL", "MATHILDE", "MARGARETA", "MAIA", "LYNSEY",
+ "LAWANNA", "LAUNA", "KENA", "KEENA", "KATIA", "JAMEY", "GLYNDA",
+ "GAYLENE", "ELVINA", "ELANOR", "DANUTA", "DANIKA", "CRISTEN",
+ "CORDIE", "COLETTA", "CLARITA", "CARMON", "BRYNN", "AZUCENA",
+ "AUNDREA", "ANGELE", "YI", "WALTER", "VERLIE", "VERLENE", "TAMESHA",
+ "SILVANA", "SEBRINA", "SAMIRA", "REDA", "RAYLENE", "PENNI",
+ "PANDORA", "NORAH", "NOMA", "MIREILLE", "MELISSIA", "MARYALICE",
+ "LARAINE", "KIMBERY", "KARYL", "KARINE", "KAM", "JOLANDA", "JOHANA",
+ "JESUSA", "JALEESA", "JAE", "JACQUELYNE", "IRISH", "ILUMINADA",
+ "HILARIA", "HANH", "GENNIE", "FRANCIE", "FLORETTA", "EXIE", "EDDA",
+ "DREMA", "DELPHA", "BEV", "BARBAR", "ASSUNTA", "ARDELL", "ANNALISA",
+ "ALISIA", "YUKIKO", "YOLANDO", "WONDA", "WEI", "WALTRAUD", "VETA",
+ "TEQUILA", "TEMEKA", "TAMEIKA", "SHIRLEEN", "SHENITA", "PIEDAD",
+ "OZELLA", "MIRTHA", "MARILU", "KIMIKO", "JULIANE", "JENICE", "JEN",
+ "JANAY", "JACQUILINE", "HILDE", "FE", "FAE", "EVAN", "EUGENE",
+ "ELOIS", "ECHO", "DEVORAH", "CHAU", "BRINDA", "BETSEY", "ARMINDA",
+ "ARACELIS", "APRYL", "ANNETT", "ALISHIA", "VEOLA", "USHA",
+ "TOSHIKO", "THEOLA", "TASHIA", "TALITHA", "SHERY", "RUDY",
+ "RENETTA", "REIKO", "RASHEEDA", "OMEGA", "OBDULIA", "MIKA",
+ "MELAINE", "MEGGAN", "MARTIN", "MARLEN", "MARGET", "MARCELINE",
+ "MANA", "MAGDALEN", "LIBRADA", "LEZLIE", "LEXIE", "LATASHIA",
+ "LASANDRA", "KELLE", "ISIDRA", "ISA", "INOCENCIA", "GWYN",
+ "FRANCOISE", "ERMINIA", "ERINN", "DIMPLE", "DEVORA", "CRISELDA",
+ "ARMANDA", "ARIE", "ARIANE", "ANGELO", "ANGELENA", "ALLEN", "ALIZA",
+ "ADRIENE", "ADALINE", "XOCHITL", "TWANNA", "TRAN", "TOMIKO",
+ "TAMISHA", "TAISHA", "SUSY", "SIU", "RUTHA", "ROXY", "RHONA",
+ "RAYMOND", "OTHA", "NORIKO", "NATASHIA", "MERRIE", "MELVIN",
+ "MARINDA", "MARIKO", "MARGERT", "LORIS", "LIZZETTE", "LEISHA",
+ "KAILA", "KA", "JOANNIE", "JERRICA", "JENE", "JANNET", "JANEE",
+ "JACINDA", "HERTA", "ELENORE", "DORETTA", "DELAINE", "DANIELL",
+ "CLAUDIE", "CHINA", "BRITTA", "APOLONIA", "AMBERLY", "ALEASE",
+ "YURI", "YUK", "WEN", "WANETA", "UTE", "TOMI", "SHARRI", "SANDIE",
+ "ROSELLE", "REYNALDA", "RAGUEL", "PHYLICIA", "PATRIA", "OLIMPIA",
+ "ODELIA", "MITZIE", "MITCHELL", "MISS", "MINDA", "MIGNON", "MICA",
+ "MENDY", "MARIVEL", "MAILE", "LYNETTA", "LAVETTE", "LAURYN",
+ "LATRISHA", "LAKIESHA", "KIERSTEN", "KARY", "JOSPHINE", "JOLYN",
+ "JETTA", "JANISE", "JACQUIE", "IVELISSE", "GLYNIS", "GIANNA",
+ "GAYNELLE", "EMERALD", "DEMETRIUS", "DANYELL", "DANILLE", "DACIA",
+ "CORALEE", "CHER", "CEOLA", "BRETT", "BELL", "ARIANNE", "ALESHIA",
+ "YUNG", "WILLIEMAE", "TROY", "TRINH", "THORA", "TAI", "SVETLANA",
+ "SHERIKA", "SHEMEKA", "SHAUNDA", "ROSELINE", "RICKI", "MELDA",
+ "MALLIE", "LAVONNA", "LATINA", "LARRY", "LAQUANDA", "LALA",
+ "LACHELLE", "KLARA", "KANDIS", "JOHNA", "JEANMARIE", "JAYE", "HANG",
+ "GRAYCE", "GERTUDE", "EMERITA", "EBONIE", "CLORINDA", "CHING",
+ "CHERY", "CAROLA", "BREANN", "BLOSSOM", "BERNARDINE", "BECKI",
+ "ARLETHA", "ARGELIA", "ARA", "ALITA", "YULANDA", "YON", "YESSENIA",
+ "TOBI", "TASIA", "SYLVIE", "SHIRL", "SHIRELY", "SHERIDAN", "SHELLA",
+ "SHANTELLE", "SACHA", "ROYCE", "REBECKA", "REAGAN", "PROVIDENCIA",
+ "PAULENE", "MISHA", "MIKI", "MARLINE", "MARICA", "LORITA",
+ "LATOYIA", "LASONYA", "KERSTIN", "KENDA", "KEITHA", "KATHRIN",
+ "JAYMIE", "JACK", "GRICELDA", "GINETTE", "ERYN", "ELINA",
+ "ELFRIEDA", "DANYEL", "CHEREE", "CHANELLE", "BARRIE", "AVERY",
+ "AURORE", "ANNAMARIA", "ALLEEN", "AILENE", "AIDE", "YASMINE",
+ "VASHTI", "VALENTINE", "TREASA", "TORY", "TIFFANEY", "SHERYLL",
+ "SHARIE", "SHANAE", "SAU", "RAISA", "PA", "NEDA", "MITSUKO",
+ "MIRELLA", "MILDA", "MARYANNA", "MARAGRET", "MABELLE", "LUETTA",
+ "LORINA", "LETISHA", "LATARSHA", "LANELLE", "LAJUANA", "KRISSY",
+ "KARLY", "KARENA", "JON", "JESSIKA", "JERICA", "JEANELLE",
+ "JANUARY", "JALISA", "JACELYN", "IZOLA", "IVEY", "GREGORY", "EUNA",
+ "ETHA", "DREW", "DOMITILA", "DOMINICA", "DAINA", "CREOLA", "CARLI",
+ "CAMIE", "BUNNY", "BRITTNY", "ASHANTI", "ANISHA", "ALEEN", "ADAH",
+ "YASUKO", "WINTER", "VIKI", "VALRIE", "TONA", "TINISHA", "THI",
+ "TERISA", "TATUM", "TANEKA", "SIMONNE", "SHALANDA", "SERITA",
+ "RESSIE", "REFUGIA", "PAZ", "OLENE", "NA", "MERRILL", "MARGHERITA",
+ "MANDIE", "MAN", "MAIRE", "LYNDIA", "LUCI", "LORRIANE", "LORETA",
+ "LEONIA", "LAVONA", "LASHAWNDA", "LAKIA", "KYOKO", "KRYSTINA",
+ "KRYSTEN", "KENIA", "KELSI", "JUDE", "JEANICE", "ISOBEL",
+ "GEORGIANN", "GENNY", "FELICIDAD", "EILENE", "DEON", "DELOISE",
+ "DEEDEE", "DANNIE", "CONCEPTION", "CLORA", "CHERILYN", "CHANG",
+ "CALANDRA", "BERRY", "ARMANDINA", "ANISA", "ULA", "TIMOTHY",
+ "TIERA", "THERESSA", "STEPHANIA", "SIMA", "SHYLA", "SHONTA",
+ "SHERA", "SHAQUITA", "SHALA", "SAMMY", "ROSSANA", "NOHEMI", "NERY",
+ "MORIAH", "MELITA", "MELIDA", "MELANI", "MARYLYNN", "MARISHA",
+ "MARIETTE", "MALORIE", "MADELENE", "LUDIVINA", "LORIA", "LORETTE",
+ "LORALEE", "LIANNE", "LEON", "LAVENIA", "LAURINDA", "LASHON", "KIT",
+ "KIMI", "KEILA", "KATELYNN", "KAI", "JONE", "JOANE", "JI", "JAYNA",
+ "JANELLA", "JA", "HUE", "HERTHA", "FRANCENE", "ELINORE", "DESPINA",
+ "DELSIE", "DEEDRA", "CLEMENCIA", "CARRY", "CAROLIN", "CARLOS",
+ "BULAH", "BRITTANIE", "BOK", "BLONDELL", "BIBI", "BEAULAH", "BEATA",
+ "ANNITA", "AGRIPINA", "VIRGEN", "VALENE", "UN", "TWANDA", "TOMMYE",
+ "TOI", "TARRA", "TARI", "TAMMERA", "SHAKIA", "SADYE", "RUTHANNE",
+ "ROCHEL", "RIVKA", "PURA", "NENITA", "NATISHA", "MING", "MERRILEE",
+ "MELODEE", "MARVIS", "LUCILLA", "LEENA", "LAVETA", "LARITA",
+ "LANIE", "KEREN", "ILEEN", "GEORGEANN", "GENNA", "GENESIS", "FRIDA",
+ "EWA", "EUFEMIA", "EMELY", "ELA", "EDYTH", "DEONNA", "DEADRA",
+ "DARLENA", "CHANELL", "CHAN", "CATHERN", "CASSONDRA", "CASSAUNDRA",
+ "BERNARDA", "BERNA", "ARLINDA", "ANAMARIA", "ALBERT", "WESLEY",
+ "VERTIE", "VALERI", "TORRI", "TATYANA", "STASIA", "SHERISE",
+ "SHERILL", "SEASON", "SCOTTIE", "SANDA", "RUTHE", "ROSY", "ROBERTO",
+ "ROBBI", "RANEE", "QUYEN", "PEARLY", "PALMIRA", "ONITA", "NISHA",
+ "NIESHA", "NIDA", "NEVADA", "NAM", "MERLYN", "MAYOLA", "MARYLOUISE",
+ "MARYLAND", "MARX", "MARTH", "MARGENE", "MADELAINE", "LONDA",
+ "LEONTINE", "LEOMA", "LEIA", "LAWRENCE", "LAURALEE", "LANORA",
+ "LAKITA", "KIYOKO", "KETURAH", "KATELIN", "KAREEN", "JONIE",
+ "JOHNETTE", "JENEE", "JEANETT", "IZETTA", "HIEDI", "HEIKE",
+ "HASSIE", "HAROLD", "GIUSEPPINA", "GEORGANN", "FIDELA", "FERNANDE",
+ "ELWANDA", "ELLAMAE", "ELIZ", "DUSTI", "DOTTY", "CYNDY", "CORALIE",
+ "CELESTA", "ARGENTINA", "ALVERTA", "XENIA", "WAVA", "VANETTA",
+ "TORRIE", "TASHINA", "TANDY", "TAMBRA", "TAMA", "STEPANIE", "SHILA",
+ "SHAUNTA", "SHARAN", "SHANIQUA", "SHAE", "SETSUKO", "SERAFINA",
+ "SANDEE", "ROSAMARIA", "PRISCILA", "OLINDA", "NADENE", "MUOI",
+ "MICHELINA", "MERCEDEZ", "MARYROSE", "MARIN", "MARCENE", "MAO",
+ "MAGALI", "MAFALDA", "LOGAN", "LINN", "LANNIE", "KAYCE", "KAROLINE",
+ "KAMILAH", "KAMALA", "JUSTA", "JOLINE", "JENNINE", "JACQUETTA",
+ "IRAIDA", "GERALD", "GEORGEANNA", "FRANCHESCA", "FAIRY", "EMELINE",
+ "ELANE", "EHTEL", "EARLIE", "DULCIE", "DALENE", "CRIS", "CLASSIE",
+ "CHERE", "CHARIS", "CAROYLN", "CARMINA", "CARITA", "BRIAN",
+ "BETHANIE", "AYAKO", "ARICA", "AN", "ALYSA", "ALESSANDRA", "AKILAH",
+ "ADRIEN", "ZETTA", "YOULANDA", "YELENA", "YAHAIRA", "XUAN",
+ "WENDOLYN", "VICTOR", "TIJUANA", "TERRELL", "TERINA", "TERESIA",
+ "SUZI", "SUNDAY", "SHERELL", "SHAVONDA", "SHAUNTE", "SHARDA",
+ "SHAKITA", "SENA", "RYANN", "RUBI", "RIVA", "REGINIA", "REA",
+ "RACHAL", "PARTHENIA", "PAMULA", "MONNIE", "MONET", "MICHAELE",
+ "MELIA", "MARINE", "MALKA", "MAISHA", "LISANDRA", "LEO", "LEKISHA",
+ "LEAN", "LAURENCE", "LAKENDRA", "KRYSTIN", "KORTNEY", "KIZZIE",
+ "KITTIE", "KERA", "KENDAL", "KEMBERLY", "KANISHA", "JULENE", "JULE",
+ "JOSHUA", "JOHANNE", "JEFFREY", "JAMEE", "HAN", "HALLEY", "GIDGET",
+ "GALINA", "FREDRICKA", "FLETA", "FATIMAH", "EUSEBIA", "ELZA",
+ "ELEONORE", "DORTHEY", "DORIA", "DONELLA", "DINORAH", "DELORSE",
+ "CLARETHA", "CHRISTINIA", "CHARLYN", "BONG", "BELKIS", "AZZIE",
+ "ANDERA", "AIKO", "ADENA", "YER", "YAJAIRA", "WAN", "VANIA",
+ "ULRIKE", "TOSHIA", "TIFANY", "STEFANY", "SHIZUE", "SHENIKA",
+ "SHAWANNA", "SHAROLYN", "SHARILYN", "SHAQUANA", "SHANTAY", "SEE",
+ "ROZANNE", "ROSELEE", "RICKIE", "REMONA", "REANNA", "RAELENE",
+ "QUINN", "PHUNG", "PETRONILA", "NATACHA", "NANCEY", "MYRL",
+ "MIYOKO", "MIESHA", "MERIDETH", "MARVELLA", "MARQUITTA", "MARHTA",
+ "MARCHELLE", "LIZETH", "LIBBIE", "LAHOMA", "LADAWN", "KINA",
+ "KATHELEEN", "KATHARYN", "KARISA", "KALEIGH", "JUNIE", "JULIEANN",
+ "JOHNSIE", "JANEAN", "JAIMEE", "JACKQUELINE", "HISAKO", "HERMA",
+ "HELAINE", "GWYNETH", "GLENN", "GITA", "EUSTOLIA", "EMELINA",
+ "ELIN", "EDRIS", "DONNETTE", "DONNETTA", "DIERDRE", "DENAE",
+ "DARCEL", "CLAUDE", "CLARISA", "CINDERELLA", "CHIA", "CHARLESETTA",
+ "CHARITA", "CELSA", "CASSY", "CASSI", "CARLEE", "BRUNA",
+ "BRITTANEY", "BRANDE", "BILLI", "BAO", "ANTONETTA", "ANGLA",
+ "ANGELYN", "ANALISA", "ALANE", "WENONA", "WENDIE", "VERONIQUE",
+ "VANNESA", "TOBIE", "TEMPIE", "SUMIKO", "SULEMA", "SPARKLE",
+ "SOMER", "SHEBA", "SHAYNE", "SHARICE", "SHANEL", "SHALON", "SAGE",
+ "ROY", "ROSIO", "ROSELIA", "RENAY", "REMA", "REENA", "PORSCHE",
+ "PING", "PEG", "OZIE", "ORETHA", "ORALEE", "ODA", "NU", "NGAN",
+ "NAKESHA", "MILLY", "MARYBELLE", "MARLIN", "MARIS", "MARGRETT",
+ "MARAGARET", "MANIE", "LURLENE", "LILLIA", "LIESELOTTE", "LAVELLE",
+ "LASHAUNDA", "LAKEESHA", "KEITH", "KAYCEE", "KALYN", "JOYA",
+ "JOETTE", "JENAE", "JANIECE", "ILLA", "GRISEL", "GLAYDS", "GENEVIE",
+ "GALA", "FREDDA", "FRED", "ELMER", "ELEONOR", "DEBERA", "DEANDREA",
+ "DAN", "CORRINNE", "CORDIA", "CONTESSA", "COLENE", "CLEOTILDE",
+ "CHARLOTT", "CHANTAY", "CECILLE", "BEATRIS", "AZALEE", "ARLEAN",
+ "ARDATH", "ANJELICA", "ANJA", "ALFREDIA", "ALEISHA", "ADAM", "ZADA",
+ "YUONNE", "XIAO", "WILLODEAN", "WHITLEY", "VENNIE", "VANNA",
+ "TYISHA", "TOVA", "TORIE", "TONISHA", "TILDA", "TIEN", "TEMPLE",
+ "SIRENA", "SHERRIL", "SHANTI", "SHAN", "SENAIDA", "SAMELLA",
+ "ROBBYN", "RENDA", "REITA", "PHEBE", "PAULITA", "NOBUKO", "NGUYET",
+ "NEOMI", "MOON", "MIKAELA", "MELANIA", "MAXIMINA", "MARG", "MAISIE",
+ "LYNNA", "LILLI", "LAYNE", "LASHAUN", "LAKENYA", "LAEL", "KIRSTIE",
+ "KATHLINE", "KASHA", "KARLYN", "KARIMA", "JOVAN", "JOSEFINE",
+ "JENNELL", "JACQUI", "JACKELYN", "HYO", "HIEN", "GRAZYNA",
+ "FLORRIE", "FLORIA", "ELEONORA", "DWANA", "DORLA", "DONG", "DELMY",
+ "DEJA", "DEDE", "DANN", "CRYSTA", "CLELIA", "CLARIS", "CLARENCE",
+ "CHIEKO", "CHERLYN", "CHERELLE", "CHARMAIN", "CHARA", "CAMMY",
+ "BEE", "ARNETTE", "ARDELLE", "ANNIKA", "AMIEE", "AMEE", "ALLENA",
+ "YVONE", "YUKI", "YOSHIE", "YEVETTE", "YAEL", "WILLETTA", "VONCILE",
+ "VENETTA", "TULA", "TONETTE", "TIMIKA", "TEMIKA", "TELMA", "TEISHA",
+ "TAREN", "TA", "STACEE", "SHIN", "SHAWNTA", "SATURNINA", "RICARDA",
+ "POK", "PASTY", "ONIE", "NUBIA", "MORA", "MIKE", "MARIELLE",
+ "MARIELLA", "MARIANELA", "MARDELL", "MANY", "LUANNA", "LOISE",
+ "LISABETH", "LINDSY", "LILLIANA", "LILLIAM", "LELAH", "LEIGHA",
+ "LEANORA", "LANG", "KRISTEEN", "KHALILAH", "KEELEY", "KANDRA",
+ "JUNKO", "JOAQUINA", "JERLENE", "JANI", "JAMIKA", "JAME", "HSIU",
+ "HERMILA", "GOLDEN", "GENEVIVE", "EVIA", "EUGENA", "EMMALINE",
+ "ELFREDA", "ELENE", "DONETTE", "DELCIE", "DEEANNA", "DARCEY", "CUC",
+ "CLARINDA", "CIRA", "CHAE", "CELINDA", "CATHERYN", "CATHERIN",
+ "CASIMIRA", "CARMELIA", "CAMELLIA", "BREANA", "BOBETTE",
+ "BERNARDINA", "BEBE", "BASILIA", "ARLYNE", "AMAL", "ALAYNA",
+ "ZONIA", "ZENIA", "YURIKO", "YAEKO", "WYNELL", "WILLOW", "WILLENA",
+ "VERNIA", "TU", "TRAVIS", "TORA", "TERRILYN", "TERICA", "TENESHA",
+ "TAWNA", "TAJUANA", "TAINA", "STEPHNIE", "SONA", "SOL", "SINA",
+ "SHONDRA", "SHIZUKO", "SHERLENE", "SHERICE", "SHARIKA", "ROSSIE",
+ "ROSENA", "RORY", "RIMA", "RIA", "RHEBA", "RENNA", "PETER",
+ "NATALYA", "NANCEE", "MELODI", "MEDA", "MAXIMA", "MATHA",
+ "MARKETTA", "MARICRUZ", "MARCELENE", "MALVINA", "LUBA", "LOUETTA",
+ "LEIDA", "LECIA", "LAURAN", "LASHAWNA", "LAINE", "KHADIJAH",
+ "KATERINE", "KASI", "KALLIE", "JULIETTA", "JESUSITA", "JESTINE",
+ "JESSIA", "JEREMY", "JEFFIE", "JANYCE", "ISADORA", "GEORGIANNE",
+ "FIDELIA", "EVITA", "EURA", "EULAH", "ESTEFANA", "ELSY", "ELIZABET",
+ "ELADIA", "DODIE", "DION", "DIA", "DENISSE", "DELORAS", "DELILA",
+ "DAYSI", "DAKOTA", "CURTIS", "CRYSTLE", "CONCHA", "COLBY",
+ "CLARETTA", "CHU", "CHRISTIA", "CHARLSIE", "CHARLENA", "CARYLON",
+ "BETTYANN", "ASLEY", "ASHLEA", "AMIRA", "AI", "AGUEDA", "AGNUS",
+ "YUETTE", "VINITA", "VICTORINA", "TYNISHA", "TREENA", "TOCCARA",
+ "TISH", "THOMASENA", "TEGAN", "SOILA", "SHILOH", "SHENNA",
+ "SHARMAINE", "SHANTAE", "SHANDI", "SEPTEMBER", "SARAN", "SARAI",
+ "SANA", "SAMUEL", "SALLEY", "ROSETTE", "ROLANDE", "REGINE",
+ "OTELIA", "OSCAR", "OLEVIA", "NICHOLLE", "NECOLE", "NAIDA", "MYRTA",
+ "MYESHA", "MITSUE", "MINTA", "MERTIE", "MARGY", "MAHALIA",
+ "MADALENE", "LOVE", "LOURA", "LOREAN", "LEWIS", "LESHA", "LEONIDA",
+ "LENITA", "LAVONE", "LASHELL", "LASHANDRA", "LAMONICA", "KIMBRA",
+ "KATHERINA", "KARRY", "KANESHA", "JULIO", "JONG", "JENEVA",
+ "JAQUELYN", "HWA", "GILMA", "GHISLAINE", "GERTRUDIS", "FRANSISCA",
+ "FERMINA", "ETTIE", "ETSUKO", "ELLIS", "ELLAN", "ELIDIA", "EDRA",
+ "DORETHEA", "DOREATHA", "DENYSE", "DENNY", "DEETTA", "DAINE",
+ "CYRSTAL", "CORRIN", "CAYLA", "CARLITA", "CAMILA", "BURMA", "BULA",
+ "BUENA", "BLAKE", "BARABARA", "AVRIL", "AUSTIN", "ALAINE", "ZANA",
+ "WILHEMINA", "WANETTA", "VIRGIL", "VI", "VERONIKA", "VERNON",
+ "VERLINE", "VASILIKI", "TONITA", "TISA", "TEOFILA", "TAYNA",
+ "TAUNYA", "TANDRA", "TAKAKO", "SUNNI", "SUANNE", "SIXTA", "SHARELL",
+ "SEEMA", "RUSSELL", "ROSENDA", "ROBENA", "RAYMONDE", "PEI",
+ "PAMILA", "OZELL", "NEIDA", "NEELY", "MISTIE", "MICHA", "MERISSA",
+ "MAURITA", "MARYLN", "MARYETTA", "MARSHALL", "MARCELL", "MALENA",
+ "MAKEDA", "MADDIE", "LOVETTA", "LOURIE", "LORRINE", "LORILEE",
+ "LESTER", "LAURENA", "LASHAY", "LARRAINE", "LAREE", "LACRESHA",
+ "KRISTLE", "KRISHNA", "KEVA", "KEIRA", "KAROLE", "JOIE", "JINNY",
+ "JEANNETTA", "JAMA", "HEIDY", "GILBERTE", "GEMA", "FAVIOLA",
+ "EVELYNN", "ENDA", "ELLI", "ELLENA", "DIVINA", "DAGNY", "COLLENE",
+ "CODI", "CINDIE", "CHASSIDY", "CHASIDY", "CATRICE", "CATHERINA",
+ "CASSEY", "CAROLL", "CARLENA", "CANDRA", "CALISTA", "BRYANNA",
+ "BRITTENY", "BEULA", "BARI", "AUDRIE", "AUDRIA", "ARDELIA",
+ "ANNELLE", "ANGILA", "ALONA", "ALLYN", "DOUGLAS", "ROGER",
+ "JONATHAN", "RALPH", "NICHOLAS", "BENJAMIN", "BRUCE", "HARRY",
+ "WAYNE", "STEVE", "HOWARD", "ERNEST", "PHILLIP", "TODD", "CRAIG",
+ "ALAN", "PHILIP", "EARL", "DANNY", "BRYAN", "STANLEY", "LEONARD",
+ "NATHAN", "MANUEL", "RODNEY", "MARVIN", "VINCENT", "JEFFERY",
+ "JEFF", "CHAD", "JACOB", "ALFRED", "BRADLEY", "HERBERT",
+ "FREDERICK", "EDWIN", "DON", "RICKY", "RANDALL", "BARRY", "BERNARD",
+ "LEROY", "MARCUS", "THEODORE", "CLIFFORD", "MIGUEL", "JIM", "TOM",
+ "CALVIN", "BILL", "LLOYD", "DEREK", "WARREN", "DARRELL", "JEROME",
+ "FLOYD", "ALVIN", "TIM", "GORDON", "GREG", "JORGE", "DUSTIN",
+ "PEDRO", "DERRICK", "ZACHARY", "HERMAN", "GLEN", "HECTOR",
+ "RICARDO", "RICK", "BRENT", "RAMON", "GILBERT", "MARC", "REGINALD",
+ "RUBEN", "NATHANIEL", "RAFAEL", "EDGAR", "MILTON", "RAUL", "BEN",
+ "CHESTER", "DUANE", "FRANKLIN", "BRAD", "RON", "ROLAND", "ARNOLD",
+ "HARVEY", "JARED", "ERIK", "DARRYL", "NEIL", "JAVIER", "FERNANDO",
+ "CLINTON", "TED", "MATHEW", "TYRONE", "DARREN", "LANCE", "KURT",
+ "ALLAN", "NELSON", "GUY", "CLAYTON", "HUGH", "MAX", "DWAYNE",
+ "DWIGHT", "ARMANDO", "FELIX", "EVERETT", "IAN", "WALLACE", "KEN",
+ "BOB", "ALFREDO", "ALBERTO", "DAVE", "IVAN", "BYRON", "ISAAC",
+ "MORRIS", "CLIFTON", "WILLARD", "ROSS", "ANDY", "SALVADOR", "KIRK",
+ "SERGIO", "SETH", "KENT", "TERRANCE", "EDUARDO", "TERRENCE",
+ "ENRIQUE", "WADE", "STUART", "FREDRICK", "ARTURO", "ALEJANDRO",
+ "NICK", "LUTHER", "WENDELL", "JEREMIAH", "JULIUS", "OTIS", "TREVOR",
+ "OLIVER", "LUKE", "HOMER", "GERARD", "DOUG", "KENNY", "HUBERT",
+ "LYLE", "MATT", "ALFONSO", "ORLANDO", "REX", "CARLTON", "ERNESTO",
+ "NEAL", "PABLO", "LORENZO", "OMAR", "WILBUR", "GRANT", "HORACE",
+ "RODERICK", "ABRAHAM", "WILLIS", "RICKEY", "ANDRES", "CESAR",
+ "JOHNATHAN", "MALCOLM", "RUDOLPH", "DAMON", "KELVIN", "PRESTON",
+ "ALTON", "ARCHIE", "MARCO", "WM", "PETE", "RANDOLPH", "GARRY",
+ "GEOFFREY", "JONATHON", "FELIPE", "GERARDO", "ED", "DOMINIC",
+ "DELBERT", "COLIN", "GUILLERMO", "EARNEST", "LUCAS", "BENNY",
+ "SPENCER", "RODOLFO", "MYRON", "EDMUND", "GARRETT", "SALVATORE",
+ "CEDRIC", "LOWELL", "GREGG", "SHERMAN", "WILSON", "SYLVESTER",
+ "ROOSEVELT", "ISRAEL", "JERMAINE", "FORREST", "WILBERT", "LELAND",
+ "SIMON", "CLARK", "IRVING", "BRYANT", "OWEN", "RUFUS", "WOODROW",
+ "KRISTOPHER", "MACK", "LEVI", "MARCOS", "GUSTAVO", "JAKE", "LIONEL",
+ "GILBERTO", "CLINT", "NICOLAS", "ISMAEL", "ORVILLE", "ERVIN",
+ "DEWEY", "AL", "WILFRED", "JOSH", "HUGO", "IGNACIO", "CALEB",
+ "TOMAS", "SHELDON", "ERICK", "STEWART", "DOYLE", "DARREL",
+ "ROGELIO", "TERENCE", "SANTIAGO", "ALONZO", "ELIAS", "BERT",
+ "ELBERT", "RAMIRO", "CONRAD", "NOAH", "GRADY", "PHIL", "CORNELIUS",
+ "LAMAR", "ROLANDO", "CLAY", "PERCY", "DEXTER", "BRADFORD", "DARIN",
+ "AMOS", "MOSES", "IRVIN", "SAUL", "ROMAN", "RANDAL", "TIMMY",
+ "DARRIN", "WINSTON", "BRENDAN", "ABEL", "DOMINICK", "BOYD",
+ "EMILIO", "ELIJAH", "DOMINGO", "EMMETT", "MARLON", "EMANUEL",
+ "JERALD", "EDMOND", "EMIL", "DEWAYNE", "WILL", "OTTO", "TEDDY",
+ "REYNALDO", "BRET", "JESS", "TRENT", "HUMBERTO", "EMMANUEL",
+ "STEPHAN", "VICENTE", "LAMONT", "GARLAND", "MILES", "EFRAIN",
+ "HEATH", "RODGER", "HARLEY", "ETHAN", "ELDON", "ROCKY", "PIERRE",
+ "JUNIOR", "FREDDY", "ELI", "BRYCE", "ANTOINE", "STERLING", "CHASE",
+ "GROVER", "ELTON", "CLEVELAND", "DYLAN", "CHUCK", "DAMIAN",
+ "REUBEN", "STAN", "AUGUST", "LEONARDO", "JASPER", "RUSSEL", "ERWIN",
+ "BENITO", "HANS", "MONTE", "BLAINE", "ERNIE", "CURT", "QUENTIN",
+ "AGUSTIN", "MURRAY", "JAMAL", "ADOLFO", "HARRISON", "TYSON",
+ "BURTON", "BRADY", "ELLIOTT", "WILFREDO", "BART", "JARROD", "VANCE",
+ "DENIS", "DAMIEN", "JOAQUIN", "HARLAN", "DESMOND", "ELLIOT",
+ "DARWIN", "GREGORIO", "BUDDY", "XAVIER", "KERMIT", "ROSCOE",
+ "ESTEBAN", "ANTON", "SOLOMON", "SCOTTY", "NORBERT", "ELVIN",
+ "WILLIAMS", "NOLAN", "ROD", "QUINTON", "HAL", "BRAIN", "ROB",
+ "ELWOOD", "KENDRICK", "DARIUS", "MOISES", "FIDEL", "THADDEUS",
+ "CLIFF", "MARCEL", "JACKSON", "RAPHAEL", "BRYON", "ARMAND",
+ "ALVARO", "JEFFRY", "DANE", "JOESPH", "THURMAN", "NED", "RUSTY",
+ "MONTY", "FABIAN", "REGGIE", "MASON", "GRAHAM", "ISAIAH", "VAUGHN",
+ "GUS", "LOYD", "DIEGO", "ADOLPH", "NORRIS", "MILLARD", "ROCCO",
+ "GONZALO", "DERICK", "RODRIGO", "WILEY", "RIGOBERTO", "ALPHONSO",
+ "TY", "NOE", "VERN", "REED", "JEFFERSON", "ELVIS", "BERNARDO",
+ "MAURICIO", "HIRAM", "DONOVAN", "BASIL", "RILEY", "NICKOLAS",
+ "MAYNARD", "SCOT", "VINCE", "QUINCY", "EDDY", "SEBASTIAN",
+ "FEDERICO", "ULYSSES", "HERIBERTO", "DONNELL", "COLE", "DAVIS",
+ "GAVIN", "EMERY", "WARD", "ROMEO", "JAYSON", "DANTE", "CLEMENT",
+ "COY", "MAXWELL", "JARVIS", "BRUNO", "ISSAC", "DUDLEY", "BROCK",
+ "SANFORD", "CARMELO", "BARNEY", "NESTOR", "STEFAN", "DONNY", "ART",
+ "LINWOOD", "BEAU", "WELDON", "GALEN", "ISIDRO", "TRUMAN", "DELMAR",
+ "JOHNATHON", "SILAS", "FREDERIC", "DICK", "IRWIN", "MERLIN",
+ "CHARLEY", "MARCELINO", "HARRIS", "CARLO", "TRENTON", "KURTIS",
+ "HUNTER", "AURELIO", "WINFRED", "VITO", "COLLIN", "DENVER",
+ "CARTER", "LEONEL", "EMORY", "PASQUALE", "MOHAMMAD", "MARIANO",
+ "DANIAL", "LANDON", "DIRK", "BRANDEN", "ADAN", "BUFORD", "GERMAN",
+ "WILMER", "EMERSON", "ZACHERY", "FLETCHER", "JACQUES", "ERROL",
+ "DALTON", "MONROE", "JOSUE", "EDWARDO", "BOOKER", "WILFORD",
+ "SONNY", "SHELTON", "CARSON", "THERON", "RAYMUNDO", "DAREN",
+ "HOUSTON", "ROBBY", "LINCOLN", "GENARO", "BENNETT", "OCTAVIO",
+ "CORNELL", "HUNG", "ARRON", "ANTONY", "HERSCHEL", "GIOVANNI",
+ "GARTH", "CYRUS", "CYRIL", "RONNY", "LON", "FREEMAN", "DUNCAN",
+ "KENNITH", "CARMINE", "ERICH", "CHADWICK", "WILBURN", "RUSS",
+ "REID", "MYLES", "ANDERSON", "MORTON", "JONAS", "FOREST", "MITCHEL",
+ "MERVIN", "ZANE", "RICH", "JAMEL", "LAZARO", "ALPHONSE", "RANDELL",
+ "MAJOR", "JARRETT", "BROOKS", "ABDUL", "LUCIANO", "SEYMOUR",
+ "EUGENIO", "MOHAMMED", "VALENTIN", "CHANCE", "ARNULFO", "LUCIEN",
+ "FERDINAND", "THAD", "EZRA", "ALDO", "RUBIN", "ROYAL", "MITCH",
+ "EARLE", "ABE", "WYATT", "MARQUIS", "LANNY", "KAREEM", "JAMAR",
+ "BORIS", "ISIAH", "EMILE", "ELMO", "ARON", "LEOPOLDO", "EVERETTE",
+ "JOSEF", "ELOY", "RODRICK", "REINALDO", "LUCIO", "JERROD", "WESTON",
+ "HERSHEL", "BARTON", "PARKER", "LEMUEL", "BURT", "JULES", "GIL",
+ "ELISEO", "AHMAD", "NIGEL", "EFREN", "ANTWAN", "ALDEN", "MARGARITO",
+ "COLEMAN", "DINO", "OSVALDO", "LES", "DEANDRE", "NORMAND", "KIETH",
+ "TREY", "NORBERTO", "NAPOLEON", "JEROLD", "FRITZ", "ROSENDO",
+ "MILFORD", "CHRISTOPER", "ALFONZO", "LYMAN", "JOSIAH", "BRANT",
+ "WILTON", "RICO", "JAMAAL", "DEWITT", "BRENTON", "OLIN", "FOSTER",
+ "FAUSTINO", "CLAUDIO", "JUDSON", "GINO", "EDGARDO", "ALEC",
+ "TANNER", "JARRED", "DONN", "TAD", "PRINCE", "PORFIRIO", "ODIS",
+ "LENARD", "CHAUNCEY", "TOD", "MEL", "MARCELO", "KORY", "AUGUSTUS",
+ "KEVEN", "HILARIO", "BUD", "SAL", "ORVAL", "MAURO", "ZACHARIAH",
+ "OLEN", "ANIBAL", "MILO", "JED", "DILLON", "AMADO", "NEWTON",
+ "LENNY", "RICHIE", "HORACIO", "BRICE", "MOHAMED", "DELMER", "DARIO",
+ "REYES", "MAC", "JONAH", "JERROLD", "ROBT", "HANK", "RUPERT",
+ "ROLLAND", "KENTON", "DAMION", "ANTONE", "WALDO", "FREDRIC",
+ "BRADLY", "KIP", "BURL", "WALKER", "TYREE", "JEFFEREY", "AHMED",
+ "WILLY", "STANFORD", "OREN", "NOBLE", "MOSHE", "MIKEL", "ENOCH",
+ "BRENDON", "QUINTIN", "JAMISON", "FLORENCIO", "DARRICK", "TOBIAS",
+ "HASSAN", "GIUSEPPE", "DEMARCUS", "CLETUS", "TYRELL", "LYNDON",
+ "KEENAN", "WERNER", "GERALDO", "COLUMBUS", "CHET", "BERTRAM",
+ "MARKUS", "HUEY", "HILTON", "DWAIN", "DONTE", "TYRON", "OMER",
+ "ISAIAS", "HIPOLITO", "FERMIN", "ADALBERTO", "BO", "BARRETT",
+ "TEODORO", "MCKINLEY", "MAXIMO", "GARFIELD", "RALEIGH", "LAWERENCE",
+ "ABRAM", "RASHAD", "KING", "EMMITT", "DARON", "SAMUAL", "MIQUEL",
+ "EUSEBIO", "DOMENIC", "DARRON", "BUSTER", "WILBER", "RENATO", "JC",
+ "HOYT", "HAYWOOD", "EZEKIEL", "CHAS", "FLORENTINO", "ELROY",
+ "CLEMENTE", "ARDEN", "NEVILLE", "EDISON", "DESHAWN", "NATHANIAL",
+ "JORDON", "DANILO", "CLAUD", "SHERWOOD", "RAYMON", "RAYFORD",
+ "CRISTOBAL", "AMBROSE", "TITUS", "HYMAN", "FELTON", "EZEQUIEL",
+ "ERASMO", "STANTON", "LONNY", "LEN", "IKE", "MILAN", "LINO",
+ "JAROD", "HERB", "ANDREAS", "WALTON", "RHETT", "PALMER", "DOUGLASS",
+ "CORDELL", "OSWALDO", "ELLSWORTH", "VIRGILIO", "TONEY", "NATHANAEL",
+ "DEL", "BENEDICT", "MOSE", "JOHNSON", "ISREAL", "GARRET", "FAUSTO",
+ "ASA", "ARLEN", "ZACK", "WARNER", "MODESTO", "FRANCESCO", "MANUAL",
+ "GAYLORD", "GASTON", "FILIBERTO", "DEANGELO", "MICHALE",
+ "GRANVILLE", "WES", "MALIK", "ZACKARY", "TUAN", "ELDRIDGE",
+ "CRISTOPHER", "CORTEZ", "ANTIONE", "MALCOM", "LONG", "KOREY",
+ "JOSPEH", "COLTON", "WAYLON", "VON", "HOSEA", "SHAD", "SANTO",
+ "RUDOLF", "ROLF", "REY", "RENALDO", "MARCELLUS", "LUCIUS",
+ "KRISTOFER", "BOYCE", "BENTON", "HAYDEN", "HARLAND", "ARNOLDO",
+ "RUEBEN", "LEANDRO", "KRAIG", "JERRELL", "JEROMY", "HOBERT",
+ "CEDRICK", "ARLIE", "WINFORD", "WALLY", "LUIGI", "KENETH",
+ "JACINTO", "GRAIG", "FRANKLYN", "EDMUNDO", "SID", "PORTER", "LEIF",
+ "JERAMY", "BUCK", "WILLIAN", "VINCENZO", "SHON", "LYNWOOD", "JERE",
+ "HAI", "ELDEN", "DORSEY", "DARELL", "BRODERICK", "ALONSO"]
+
diff --git a/testsuite/tests/ghci/scripts/T789.script b/testsuite/tests/ghci/scripts/T789.script
new file mode 100644
index 0000000000..d8e2a3a00b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T789.script
@@ -0,0 +1,2 @@
+:l T789.hs
+print $ length table
diff --git a/testsuite/tests/ghci/scripts/T789.stdout b/testsuite/tests/ghci/scripts/T789.stdout
new file mode 100644
index 0000000000..045c1c6b12
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T789.stdout
@@ -0,0 +1 @@
+5163
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
new file mode 100644
index 0000000000..f3ddbffc6a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -0,0 +1,77 @@
+
+setTestOpts(if_compiler_profiled(skip))
+
+test('ghci001', normal, ghci_script, ['ghci001.script'])
+test('ghci002', normal, ghci_script, ['ghci002.script'])
+test('ghci003', normal, ghci_script, ['ghci003.script'])
+test('ghci004', normal, ghci_script, ['ghci004.script'])
+test('ghci005', normal, ghci_script, ['ghci005.script'])
+test('ghci006', normal, ghci_script, ['ghci006.script'])
+test('ghci007', normal, ghci_script, ['ghci007.script'])
+test('ghci008', normal, ghci_script, ['ghci008.script'])
+test('ghci009', normal, ghci_script, ['ghci009.script'])
+
+# Skip this test: deadlock can't be detected now, because we wait for
+# signals to arrive if there are signal handlers installed, and GHCi
+# has a ^C handler installed.
+test('ghci010', skip, ghci_script, ['ghci010.script'])
+
+test('ghci011', normal, ghci_script, ['ghci011.script'])
+test('ghci012', normal, ghci_script, ['ghci012.script'])
+test('ghci013', normal, ghci_script, ['ghci013.script'])
+test('ghci014', reqlib('QuickCheck'), ghci_script, ['ghci014.script'])
+
+# Ignore output from ghci015, the output is non-deterministic
+# (has occasional "thread blocked indefinitely" exceptions), and this
+# is part of the test.
+test('ghci015', ignore_output, ghci_script, ['ghci015.script'])
+
+test('ghci016', expect_broken(552), ghci_script, ['ghci016.script'])
+test('ghci017', extra_run_opts('-hide-package haskell98'), ghci_script, ['ghci017.script'])
+test('ghci018', expect_broken(1201), ghci_script, ['ghci018.script'])
+test('ghci019', normal, ghci_script, ['ghci019.script'])
+test('ghci020', normal, ghci_script, ['ghci020.script'])
+test('ghci021', normal, ghci_script, ['ghci021.script'])
+test('ghci022', normal, ghci_script, ['ghci022.script'])
+
+test('ghci023', normal, ghci_script, ['ghci023.script'])
+test('ghci024',
+ [skip_if_fast,
+ if_platform("powerpc-apple-darwin", expect_broken(1845))],
+ run_command,
+ ['$MAKE -s --no-print-directory ghci024'])
+test('ghci025', normal, ghci_script, ['ghci025.script'])
+test('ghci026', normal, ghci_script, ['ghci026.script'])
+
+test('ghci027', normal, ghci_script, ['ghci027.script'])
+test('ghci028', normal, ghci_script, ['ghci028.script'])
+test('ghci029', normal, ghci_script, ['ghci029.script'])
+test('ghci030', normal, ghci_script, ['ghci030.script'])
+test('ghci031', normal, ghci_script, ['ghci031.script'])
+test('ghci032', normal, ghci_script, ['ghci032.script'])
+test('ghci033', normal, ghci_script, ['ghci033.script'])
+test('ghci034', normal, ghci_script, ['ghci034.script'])
+test('ghci035', normal, ghci_script, ['ghci035.script'])
+test('ghci036', normal, ghci_script, ['ghci036.script'])
+test('ghci037', req_interp, run_command, ['$MAKE -s --no-print-directory ghci037'])
+test('2452', normal, ghci_script, ['2452.script'])
+test('T2766', normal, ghci_script, ['T2766.script'])
+
+test('1914',
+ extra_clean(['T1914A.hs', 'T1914B.hs']),
+ ghci_script,
+ ['1914.script'])
+
+test('2976', normal, ghci_script, ['2976.script'])
+test('2816', normal, ghci_script, ['2816.script'])
+test('T789', normal, ghci_script, ['T789.script'])
+test('T3263', normal, ghci_script, ['T3263.script'])
+test('4051', normal, ghci_script, ['4051.script'])
+test('T4087', normal, ghci_script, ['T4087.script'])
+test('T4015', normal, ghci_script, ['T4015.script'])
+test('T4127', normal, ghci_script, ['T4127.script'])
+test('T4127a', normal, ghci_script, ['T4127a.script'])
+test('T4316', reqlib('mtl'), ghci_script, ['T4316.script'])
+test('T4832', normal, ghci_script, ['T4832.script'])
+test('T5045', normal, ghci_script, ['T5045.script'])
+test('T5130', normal, ghci_script, ['T5130.script'])
diff --git a/testsuite/tests/ghci/scripts/ghci001.script b/testsuite/tests/ghci/scripts/ghci001.script
new file mode 100644
index 0000000000..0902a0ccd1
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci001.script
@@ -0,0 +1,3 @@
+-- bug: shouldn't be defaulting these expressions
+:type (+)
+:type enumFromTo
diff --git a/testsuite/tests/ghci/scripts/ghci001.stdout b/testsuite/tests/ghci/scripts/ghci001.stdout
new file mode 100644
index 0000000000..b0a2458b59
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci001.stdout
@@ -0,0 +1,2 @@
+(+) :: Num a => a -> a -> a
+enumFromTo :: Enum a => a -> a -> [a]
diff --git a/testsuite/tests/ghci/scripts/ghci002.script b/testsuite/tests/ghci/scripts/ghci002.script
new file mode 100644
index 0000000000..3c0ec29eae
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci002.script
@@ -0,0 +1,4 @@
+-- bug: we used to throw away the instance accidentally here
+:m GHC.Base
+1 == (2 :: Int)
+1 == (2 :: Int)
diff --git a/testsuite/tests/ghci/scripts/ghci002.stdout b/testsuite/tests/ghci/scripts/ghci002.stdout
new file mode 100644
index 0000000000..815d6689fe
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci002.stdout
@@ -0,0 +1,2 @@
+False
+False
diff --git a/testsuite/tests/ghci/scripts/ghci003.script b/testsuite/tests/ghci/scripts/ghci003.script
new file mode 100644
index 0000000000..08d0114de4
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci003.script
@@ -0,0 +1,7 @@
+-- check that 'it' works
+1
+it
+print it
+return 42
+it
+print it
diff --git a/testsuite/tests/ghci/scripts/ghci003.stdout b/testsuite/tests/ghci/scripts/ghci003.stdout
new file mode 100644
index 0000000000..6d07eb1b81
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci003.stdout
@@ -0,0 +1,6 @@
+1
+1
+1
+42
+42
+42
diff --git a/testsuite/tests/ghci/scripts/ghci004.hs b/testsuite/tests/ghci/scripts/ghci004.hs
new file mode 100644
index 0000000000..6406a11565
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci004.hs
@@ -0,0 +1,2 @@
+import Data.List
+main = print (sort [100,99..1])
diff --git a/testsuite/tests/ghci/scripts/ghci004.script b/testsuite/tests/ghci/scripts/ghci004.script
new file mode 100644
index 0000000000..4949629935
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci004.script
@@ -0,0 +1,4 @@
+:unset +s +t
+-- test importing a module from a package
+:l ghci004
+main
diff --git a/testsuite/tests/ghci/scripts/ghci004.stderr b/testsuite/tests/ghci/scripts/ghci004.stderr
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci004.stderr
diff --git a/testsuite/tests/ghci/scripts/ghci004.stdout b/testsuite/tests/ghci/scripts/ghci004.stdout
new file mode 100644
index 0000000000..0aec69a0c1
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci004.stdout
@@ -0,0 +1 @@
+[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
diff --git a/testsuite/tests/ghci/scripts/ghci005.script b/testsuite/tests/ghci/scripts/ghci005.script
new file mode 100644
index 0000000000..e31b6fc9b7
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci005.script
@@ -0,0 +1,18 @@
+:unset +s +t
+-- tests for :def, :undef
+:def
+let void m = m >> return ""
+let echo s = void (putStrLn s)
+:def echo echo
+:def
+:echo hello, world!
+
+let echoupper s = return (":! echo " ++ map Data.Char.toUpper s)
+:echo hello, world!
+:def echo echoupper
+:undef echo
+:def echo echoupper
+:echo hello, world!
+:def! echo echo
+:echo hello, world!
+:undef f f
diff --git a/testsuite/tests/ghci/scripts/ghci005.stdout b/testsuite/tests/ghci/scripts/ghci005.stdout
new file mode 100644
index 0000000000..e94f822e46
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci005.stdout
@@ -0,0 +1,9 @@
+no macros defined
+the following macros are defined:
+echo
+hello, world!
+hello, world!
+macro 'echo' is already defined
+HELLO, WORLD!
+hello, world!
+macro 'f' is not defined
diff --git a/testsuite/tests/ghci/scripts/ghci006.hs b/testsuite/tests/ghci/scripts/ghci006.hs
new file mode 100644
index 0000000000..c1bef51070
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci006.hs
@@ -0,0 +1,8 @@
+
+module Ghci006 where
+
+data Q = forall x . Show x => Q x
+showQ (Q x) = show x
+
+-- associated bug is that at the interpreter command line,
+-- showQ (Q "foo") crashed the interpreter.
diff --git a/testsuite/tests/ghci/scripts/ghci006.script b/testsuite/tests/ghci/scripts/ghci006.script
new file mode 100644
index 0000000000..adccf3114c
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci006.script
@@ -0,0 +1,6 @@
+:unset +s +t
+:set -XExistentialQuantification
+-- test for contexts on existential types crashing the interpreter
+:l ghci006
+showQ (Q "foo")
+
diff --git a/testsuite/tests/ghci/scripts/ghci006.stderr b/testsuite/tests/ghci/scripts/ghci006.stderr
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci006.stderr
diff --git a/testsuite/tests/ghci/scripts/ghci006.stdout b/testsuite/tests/ghci/scripts/ghci006.stdout
new file mode 100644
index 0000000000..359e72fb1b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci006.stdout
@@ -0,0 +1 @@
+"\"foo\""
diff --git a/testsuite/tests/ghci/scripts/ghci007.script b/testsuite/tests/ghci/scripts/ghci007.script
new file mode 100644
index 0000000000..a4819aab50
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci007.script
@@ -0,0 +1,2 @@
+-- bug: shouldn't kill the whole system
+System.Exit.exitFailure
diff --git a/testsuite/tests/ghci/scripts/ghci007.stdout b/testsuite/tests/ghci/scripts/ghci007.stdout
new file mode 100644
index 0000000000..59eac9cfdb
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci007.stdout
@@ -0,0 +1 @@
+*** Exception: ExitFailure 1
diff --git a/testsuite/tests/ghci/scripts/ghci008.script b/testsuite/tests/ghci/scripts/ghci008.script
new file mode 100644
index 0000000000..8bbee9d58b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci008.script
@@ -0,0 +1,7 @@
+-- testing :info
+:info +
+:info (+)
+:info Data.Complex.:+
+:info (Data.Complex.:+)
+:info RealFloat
+:info `Data.List.isPrefixOf`
diff --git a/testsuite/tests/ghci/scripts/ghci008.stdout b/testsuite/tests/ghci/scripts/ghci008.stdout
new file mode 100644
index 0000000000..000f254070
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci008.stdout
@@ -0,0 +1,36 @@
+class (Eq a, Show a) => Num a where
+ (+) :: a -> a -> a
+ ...
+ -- Defined in GHC.Num
+infixl 6 +
+class (Eq a, Show a) => Num a where
+ (+) :: a -> a -> a
+ ...
+ -- Defined in GHC.Num
+infixl 6 +
+data Data.Complex.Complex a = !a Data.Complex.:+ !a
+ -- Defined in Data.Complex
+infix 6 Data.Complex.:+
+data Data.Complex.Complex a = !a Data.Complex.:+ !a
+ -- Defined in Data.Complex
+infix 6 Data.Complex.:+
+class (RealFrac a, Floating a) => RealFloat a where
+ floatRadix :: a -> Integer
+ floatDigits :: a -> Int
+ floatRange :: a -> (Int, Int)
+ decodeFloat :: a -> (Integer, Int)
+ encodeFloat :: Integer -> Int -> a
+ exponent :: a -> Int
+ significand :: a -> a
+ scaleFloat :: Int -> a -> a
+ isNaN :: a -> Bool
+ isInfinite :: a -> Bool
+ isDenormalized :: a -> Bool
+ isNegativeZero :: a -> Bool
+ isIEEE :: a -> Bool
+ atan2 :: a -> a -> a
+ -- Defined in GHC.Float
+instance RealFloat Float -- Defined in GHC.Float
+instance RealFloat Double -- Defined in GHC.Float
+Data.List.isPrefixOf :: Eq a => [a] -> [a] -> Bool
+ -- Defined in Data.List
diff --git a/testsuite/tests/ghci/scripts/ghci009.script b/testsuite/tests/ghci/scripts/ghci009.script
new file mode 100644
index 0000000000..ecb635c704
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci009.script
@@ -0,0 +1,20 @@
+-- !!! test `:set args' and `:set prog'
+System.Environment.getArgs
+print it
+System.Environment.getProgName
+print it
+:set args
+System.Environment.getArgs
+print it
+System.Environment.getProgName
+print it
+:set args foo bar
+System.Environment.getArgs
+print it
+System.Environment.getProgName
+print it
+:set prog foo
+System.Environment.getArgs
+print it
+System.Environment.getProgName
+print it
diff --git a/testsuite/tests/ghci/scripts/ghci009.stdout b/testsuite/tests/ghci/scripts/ghci009.stdout
new file mode 100644
index 0000000000..3d40fb8d99
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci009.stdout
@@ -0,0 +1,16 @@
+[]
+[]
+"<interactive>"
+"<interactive>"
+[]
+[]
+"<interactive>"
+"<interactive>"
+["foo","bar"]
+["foo","bar"]
+"<interactive>"
+"<interactive>"
+["foo","bar"]
+["foo","bar"]
+"foo"
+"foo"
diff --git a/testsuite/tests/ghci/scripts/ghci010.script b/testsuite/tests/ghci/scripts/ghci010.script
new file mode 100644
index 0000000000..56b99062db
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci010.script
@@ -0,0 +1,2 @@
+-- !!! check we can detect deadlock
+Control.Concurrent.newEmptyMVar >>= Control.Concurrent.takeMVar
diff --git a/testsuite/tests/ghci/scripts/ghci010.stdout b/testsuite/tests/ghci/scripts/ghci010.stdout
new file mode 100644
index 0000000000..b0be06f788
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci010.stdout
@@ -0,0 +1,14 @@
+ ___ ___ _
+ / _ \ /\ /\/ __(_)
+ / /_\// /_/ / / | | GHC Interactive, version 5.03, for Haskell 98.
+/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
+\____/\/ /_/\____/|_| Type :? for help.
+
+Loading package std ... linking ... done.
+Prelude> -- !!! check we can detect deadlock
+Prelude> :set -package concurrent
+Loading package lang ... linking ... done.
+Loading package concurrent ... linking ... done.
+Prelude> Concurrent.newEmptyMVar >>= Concurrent.takeMVar
+Deadlocked.
+Prelude> Leaving GHCi.
diff --git a/testsuite/tests/ghci/scripts/ghci011.script b/testsuite/tests/ghci/scripts/ghci011.script
new file mode 100644
index 0000000000..0c147736f0
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci011.script
@@ -0,0 +1,4 @@
+-- testing :info on builtin identifiers
+:info []
+:info ()
+:info (,)
diff --git a/testsuite/tests/ghci/scripts/ghci011.stdout b/testsuite/tests/ghci/scripts/ghci011.stdout
new file mode 100644
index 0000000000..840bb18a4d
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci011.stdout
@@ -0,0 +1,21 @@
+data [] a = [] | a : [a] -- Defined in GHC.Types
+instance Eq a => Eq [a] -- Defined in GHC.Classes
+instance Monad [] -- Defined in GHC.Base
+instance Functor [] -- Defined in GHC.Base
+instance Ord a => Ord [a] -- Defined in GHC.Classes
+instance Read a => Read [a] -- Defined in GHC.Read
+instance Show a => Show [a] -- Defined in GHC.Show
+data () = () -- Defined in GHC.Unit
+instance Bounded () -- Defined in GHC.Enum
+instance Enum () -- Defined in GHC.Enum
+instance Eq () -- Defined in GHC.Classes
+instance Ord () -- Defined in GHC.Classes
+instance Read () -- Defined in GHC.Read
+instance Show () -- Defined in GHC.Show
+data (,) a b = (,) a b -- Defined in GHC.Tuple
+instance (Bounded a, Bounded b) => Bounded (a, b)
+ -- Defined in GHC.Enum
+instance (Eq a, Eq b) => Eq (a, b) -- Defined in GHC.Classes
+instance (Ord a, Ord b) => Ord (a, b) -- Defined in GHC.Classes
+instance (Read a, Read b) => Read (a, b) -- Defined in GHC.Read
+instance (Show a, Show b) => Show (a, b) -- Defined in GHC.Show
diff --git a/testsuite/tests/ghci/scripts/ghci012.script b/testsuite/tests/ghci/scripts/ghci012.script
new file mode 100644
index 0000000000..d2548dd670
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci012.script
@@ -0,0 +1,2 @@
+let lf $$$ lx = zipWith ($) lf lx
+:i $$$
diff --git a/testsuite/tests/ghci/scripts/ghci012.stdout b/testsuite/tests/ghci/scripts/ghci012.stdout
new file mode 100644
index 0000000000..98780e4152
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci012.stdout
@@ -0,0 +1 @@
+($$$) :: [b -> c] -> [b] -> [c] -- Defined at <interactive>:1:8-10
diff --git a/testsuite/tests/ghci/scripts/ghci013.script b/testsuite/tests/ghci/scripts/ghci013.script
new file mode 100644
index 0000000000..eec0af840a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci013.script
@@ -0,0 +1,5 @@
+-- type-variable tidying problem in 6.4
+-- incorrect type: (Monad m) => (m a, b) -> m b
+-- correct type: (Monad m) => (m a, b) -> m b1
+let f (a,b) = a >> undefined
+:t f
diff --git a/testsuite/tests/ghci/scripts/ghci013.stdout b/testsuite/tests/ghci/scripts/ghci013.stdout
new file mode 100644
index 0000000000..5daf16ee23
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci013.stdout
@@ -0,0 +1 @@
+f :: Monad m => (m a, t) -> m b
diff --git a/testsuite/tests/ghci/scripts/ghci014.hs b/testsuite/tests/ghci/scripts/ghci014.hs
new file mode 100644
index 0000000000..dd668cff3b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci014.hs
@@ -0,0 +1,7 @@
+
+import Test.QuickCheck.Batch
+
+prop_silly :: [()] -> Bool
+prop_silly xs = head xs == head xs
+
+do_test = runTests "test" defOpt [ run prop_silly ]
diff --git a/testsuite/tests/ghci/scripts/ghci014.script b/testsuite/tests/ghci/scripts/ghci014.script
new file mode 100644
index 0000000000..e1c6193ac1
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci014.script
@@ -0,0 +1,983 @@
+:l ghci014
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
+do_test
diff --git a/testsuite/tests/ghci/scripts/ghci014.stdout b/testsuite/tests/ghci/scripts/ghci014.stdout
new file mode 100644
index 0000000000..324972da57
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci014.stdout
@@ -0,0 +1,982 @@
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
+ test : * (0)
diff --git a/testsuite/tests/ghci/scripts/ghci015.hs b/testsuite/tests/ghci/scripts/ghci015.hs
new file mode 100644
index 0000000000..0ff637f046
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci015.hs
@@ -0,0 +1,43 @@
+-- Code from ticket #488
+
+module Test where
+
+import Control.Concurrent.STM
+import Control.Concurrent
+import Control.Exception
+import Prelude hiding (catch)
+
+
+runTest loop = do
+ (tc1, tc2, tmv) <- atomically (do
+ tmv <- newEmptyTMVar
+ tc1 <- newTChan
+ tc2 <- newTChan
+ return (tc1, tc2, tmv)
+ )
+ myTId <- myThreadId
+ forkIO (forked loop (tc1, tc2, tmv, myTId))
+ atomically (writeTChan tc1 "blah")
+ atomically (writeTChan tc1 "blah2")
+ return "done"
+
+
+forked loop args@(tc1, tc2, tmv, hisTId) = catch ((loop args) >>= setTMV . Just) hndlr `finally` setTMV Nothing
+ where
+ setTMV x = atomically (tryPutTMVar tmv x >> return ())
+ hndlr (AsyncException ThreadKilled) = return ()
+ hndlr e = throwTo hisTId e
+
+goodLoop args@(tc1, tc2, tmv, hisTId) = do
+ x <- atomically (readTChan tc1)
+ x' <- return $ reverse x
+ atomically (writeTChan tc2 x')
+ if x == "blah2"
+ then return ()
+ else goodLoop args
+
+badLoop args@(tc1, tc2, tmv, hisTId) = do
+ x <- atomically (readTChan tc1)
+ x' <- return $ reverse x
+ atomically (writeTChan tc2 x')
+ badLoop args
diff --git a/testsuite/tests/ghci/scripts/ghci015.script b/testsuite/tests/ghci/scripts/ghci015.script
new file mode 100644
index 0000000000..320f930276
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci015.script
@@ -0,0 +1,388 @@
+:l ghci015
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
+runTest badLoop
diff --git a/testsuite/tests/ghci/scripts/ghci015.stdout b/testsuite/tests/ghci/scripts/ghci015.stdout
new file mode 100644
index 0000000000..dd8584cd33
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci015.stdout
@@ -0,0 +1,387 @@
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
+"done"
diff --git a/testsuite/tests/ghci/scripts/ghci016.hs b/testsuite/tests/ghci/scripts/ghci016.hs
new file mode 100644
index 0000000000..2740a66517
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci016.hs
@@ -0,0 +1,18 @@
+-- Test for trac #552
+
+module Test where
+
+default (T)
+
+data T = T
+ deriving (Eq, Show)
+
+instance Num T where
+ fromInteger _ = T
+ (+) = error "urk"
+ (*) = error "urk"
+ abs = error "urk"
+ signum = error "urk"
+
+-- Typing 3 at the ghci prompt should print T
+
diff --git a/testsuite/tests/ghci/scripts/ghci016.script b/testsuite/tests/ghci/scripts/ghci016.script
new file mode 100644
index 0000000000..b0fc578813
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci016.script
@@ -0,0 +1,2 @@
+:l ghci016
+3
diff --git a/testsuite/tests/ghci/scripts/ghci016.stdout b/testsuite/tests/ghci/scripts/ghci016.stdout
new file mode 100644
index 0000000000..62a6e3c9df
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci016.stdout
@@ -0,0 +1 @@
+T
diff --git a/testsuite/tests/ghci/scripts/ghci017.script b/testsuite/tests/ghci/scripts/ghci017.script
new file mode 100644
index 0000000000..6a452c185a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci017.script
@@ -0,0 +1 @@
+()
diff --git a/testsuite/tests/ghci/scripts/ghci017.stdout b/testsuite/tests/ghci/scripts/ghci017.stdout
new file mode 100644
index 0000000000..6a452c185a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci017.stdout
@@ -0,0 +1 @@
+()
diff --git a/testsuite/tests/ghci/scripts/ghci018.script b/testsuite/tests/ghci/scripts/ghci018.script
new file mode 100644
index 0000000000..7eea11e3c3
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci018.script
@@ -0,0 +1,4 @@
+:set -XTemplateHaskell
+:m + Language.Haskell.TH
+$( do runIO $ putStrLn "Q"; [| 'x' |] )
+
diff --git a/testsuite/tests/ghci/scripts/ghci018.stdout b/testsuite/tests/ghci/scripts/ghci018.stdout
new file mode 100644
index 0000000000..6b97cd261f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci018.stdout
@@ -0,0 +1,2 @@
+Q
+'x'
diff --git a/testsuite/tests/ghci/scripts/ghci019.hs b/testsuite/tests/ghci/scripts/ghci019.hs
new file mode 100644
index 0000000000..f1ea575566
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci019.hs
@@ -0,0 +1,9 @@
+-- Trac #1581
+-- Even though Eq is not in scope unqualified, we want to
+-- see the Eq instance of Foo when we say :i Foo
+
+module Foo where
+import qualified Prelude
+
+data Foo = Foo
+instance Prelude.Eq Foo
diff --git a/testsuite/tests/ghci/scripts/ghci019.script b/testsuite/tests/ghci/scripts/ghci019.script
new file mode 100644
index 0000000000..b74e7c5ab9
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci019.script
@@ -0,0 +1,2 @@
+:l ghci019
+:i Foo
diff --git a/testsuite/tests/ghci/scripts/ghci019.stdout b/testsuite/tests/ghci/scripts/ghci019.stdout
new file mode 100644
index 0000000000..fa4027070c
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci019.stdout
@@ -0,0 +1,2 @@
+data Foo = Foo -- Defined at ghci019.hs:8:6-8
+instance Prelude.Eq Foo -- Defined at ghci019.hs:9:10-23
diff --git a/testsuite/tests/ghci/scripts/ghci020.script b/testsuite/tests/ghci/scripts/ghci020.script
new file mode 100644
index 0000000000..6fdfb52def
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci020.script
@@ -0,0 +1 @@
+:i (->)
diff --git a/testsuite/tests/ghci/scripts/ghci020.stdout b/testsuite/tests/ghci/scripts/ghci020.stdout
new file mode 100644
index 0000000000..30f3bf6083
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci020.stdout
@@ -0,0 +1 @@
+data (->) a b -- Defined in GHC.Prim
diff --git a/testsuite/tests/ghci/scripts/ghci021.script b/testsuite/tests/ghci/scripts/ghci021.script
new file mode 100644
index 0000000000..c2c4dec5d1
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci021.script
@@ -0,0 +1,4 @@
+let f = 'a'
+:r ThisDoesNotExist
+f
+
diff --git a/testsuite/tests/ghci/scripts/ghci021.stderr b/testsuite/tests/ghci/scripts/ghci021.stderr
new file mode 100644
index 0000000000..ae7c75b6bb
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci021.stderr
@@ -0,0 +1,2 @@
+
+<no location info>: no such module: `ThisDoesNotExist'
diff --git a/testsuite/tests/ghci/scripts/ghci021.stdout b/testsuite/tests/ghci/scripts/ghci021.stdout
new file mode 100644
index 0000000000..67fe32dafe
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci021.stdout
@@ -0,0 +1 @@
+'a'
diff --git a/testsuite/tests/ghci/scripts/ghci022.hs b/testsuite/tests/ghci/scripts/ghci022.hs
new file mode 100644
index 0000000000..d49fdba319
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci022.hs
@@ -0,0 +1,2 @@
+module Main where
+'a' '
diff --git a/testsuite/tests/ghci/scripts/ghci022.script b/testsuite/tests/ghci/scripts/ghci022.script
new file mode 100644
index 0000000000..ccefc3c83b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci022.script
@@ -0,0 +1,2 @@
+:l ghci022.hs
+:show modules
diff --git a/testsuite/tests/ghci/scripts/ghci022.stderr b/testsuite/tests/ghci/scripts/ghci022.stderr
new file mode 100644
index 0000000000..138460c99f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci022.stderr
@@ -0,0 +1,3 @@
+
+ghci022.hs:2:6:
+ lexical error in string/character literal at character '\n'
diff --git a/testsuite/tests/ghci/scripts/ghci022.stdout b/testsuite/tests/ghci/scripts/ghci022.stdout
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci022.stdout
diff --git a/testsuite/tests/ghci/scripts/ghci023.ghci b/testsuite/tests/ghci/scripts/ghci023.ghci
new file mode 100644
index 0000000000..83363a3ddc
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci023.ghci
@@ -0,0 +1,10 @@
+:{
+ let { a = True
+ ; b = False
+ }
+:}
+print (a,b)
+:{
+:type
+ id
+:}
diff --git a/testsuite/tests/ghci/scripts/ghci023.script b/testsuite/tests/ghci/scripts/ghci023.script
new file mode 100644
index 0000000000..dd77433af7
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci023.script
@@ -0,0 +1,17 @@
+putStrLn "-- testing ghci multiline commands :{ .. :}"
+putStrLn "-- via stdin"
+:{
+ let
+ { f 0 = 1
+ ; f 1 = w
+ where { w = 2 }
+ ; y = 3
+ }
+:}
+print (f 0,f 1,y)
+:{
+:browse
+ Data.Maybe
+:}
+putStrLn "-- via readFile"
+:cmd readFile "ghci023.ghci"
diff --git a/testsuite/tests/ghci/scripts/ghci023.stdout b/testsuite/tests/ghci/scripts/ghci023.stdout
new file mode 100644
index 0000000000..855695af06
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci023.stdout
@@ -0,0 +1,16 @@
+-- testing ghci multiline commands :{ .. :}
+-- via stdin
+(1,2,3)
+data Maybe a = Nothing | Just a
+catMaybes :: [Maybe a] -> [a]
+fromJust :: Maybe a -> a
+fromMaybe :: a -> Maybe a -> a
+isJust :: Maybe a -> Bool
+isNothing :: Maybe a -> Bool
+listToMaybe :: [a] -> Maybe a
+mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+maybe :: b -> (a -> b) -> Maybe a -> b
+maybeToList :: Maybe a -> [a]
+-- via readFile
+(True,False)
+id :: a -> a
diff --git a/testsuite/tests/ghci/scripts/ghci024.script b/testsuite/tests/ghci/scripts/ghci024.script
new file mode 100644
index 0000000000..f1c9286991
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci024.script
@@ -0,0 +1,10 @@
+putStrLn "-- ghci024.stdout is a generated file! please edit ghci024.py instead."
+:set
+:show languages
+putStrLn "-- :set -XMagicHash"
+:set -XMagicHash
+:show languages
+:show packages
+putStrLn "-- :set -package ghc"
+:set -package ghc
+:show packages
diff --git a/testsuite/tests/ghci/scripts/ghci024.stderr b/testsuite/tests/ghci/scripts/ghci024.stderr
new file mode 100644
index 0000000000..425c02baba
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci024.stderr
@@ -0,0 +1 @@
+package flags have changed, resetting and loading new packages...
diff --git a/testsuite/tests/ghci/scripts/ghci024.stdout b/testsuite/tests/ghci/scripts/ghci024.stdout
new file mode 100644
index 0000000000..9f3fe7b999
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci024.stdout
@@ -0,0 +1,18 @@
+~~~~~~~~~~ Testing :set
+options currently set: none.
+GHCi-specific dynamic flag settings:
+ -fno-print-explicit-foralls
+other dynamic, non-language, flag settings:
+ -fno-warn-implicit-prelude
+~~~~~~~~~~ Testing :show languages
+active language flags:
+ -XImplicitPrelude
+~~~~~~~~~~ Testing :show languages, with -XMagicHash
+active language flags:
+ -XMagicHash
+ -XImplicitPrelude
+~~~~~~~~~~ Testing :show packages
+active package flags: none
+~~~~~~~~~~ Testing :show packages, including the ghc package
+active package flags:
+ -package ghc
diff --git a/testsuite/tests/ghci/scripts/ghci025.hs b/testsuite/tests/ghci/scripts/ghci025.hs
new file mode 100644
index 0000000000..0e1bc7e2c5
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci025.hs
@@ -0,0 +1,22 @@
+{-# LANGUAGE Rank2Types, MultiParamTypeClasses #-}
+
+module T where
+
+import qualified Prelude as T(length,Monad,Integer)
+import qualified Data.ByteString as T(length)
+import Prelude(length,(+),(=<<),Monad(..),Maybe(..),Eq)
+import Data.Maybe
+import Control.Monad(Monad(..),MonadPlus(..))
+
+length :: T.Integer
+length = 0
+
+class N a
+class S a
+
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b,S b) => a -> b
+ c3 :: forall a. a -> b
+ c4 :: a1 -> b
+
diff --git a/testsuite/tests/ghci/scripts/ghci025.script b/testsuite/tests/ghci/scripts/ghci025.script
new file mode 100644
index 0000000000..40f3e475be
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci025.script
@@ -0,0 +1,27 @@
+:l ghci025
+System.IO.putStrLn "-- test :browse! functionality"
+System.IO.putStrLn ":browse! *T"
+:browse! *T
+System.IO.putStrLn ":browse! T"
+:browse! T
+:set -fprint-explicit-foralls
+System.IO.putStrLn ":browse! T -- with -fprint-explicit-foralls"
+:browse! T
+
+System.IO.putStrLn "-- test :browse! <target> relative to different contexts"
+:set -fforce-recomp
+-- ToDo: this will go wrong in parallel
+:! cp ../prog001/D1.hs ../prog001/D.hs
+:l ../prog001/D.hs
+:add ../prog001/C.hs
+System.IO.putStrLn ":browse! C -- from *C>"
+:browse! C
+:add ../prog001/B.hs
+System.IO.putStrLn ":browse! C -- from *B>, after :add B"
+:browse! C
+:m *C
+System.IO.putStrLn ":browse! C -- from *C>, after :m *C"
+:browse! C
+:m *D
+System.IO.putStrLn ":browse! C -- from *D>, after :m *D"
+:browse! C
diff --git a/testsuite/tests/ghci/scripts/ghci025.stdout b/testsuite/tests/ghci/scripts/ghci025.stdout
new file mode 100644
index 0000000000..2c8a9835dd
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci025.stdout
@@ -0,0 +1,111 @@
+-- test :browse! functionality
+:browse! *T
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: a1 -> b
+ c4 :: a1 -> b
+c1 :: (C a b, N b) => a -> b
+c2 :: (C a b, N b, S b) => a -> b
+c3 :: C a b => forall a1. a1 -> b
+c4 :: C a b => forall a1. a1 -> b
+-- imported via Control.Monad
+class Monad m => MonadPlus m where
+ mzero :: m a
+ mplus :: m a -> m a -> m a
+mplus :: MonadPlus m => forall a. m a -> m a -> m a
+mzero :: MonadPlus m => forall a. m a
+-- imported via Control.Monad, Prelude
+(>>) :: Monad m => forall a b. m a -> m b -> m b
+(>>=) :: Monad m => forall a b. m a -> (a -> m b) -> m b
+fail :: Monad m => forall a. GHC.Base.String -> m a
+return :: Monad m => forall a. a -> m a
+-- imported via Control.Monad, Prelude, T
+class Monad m where
+ (>>=) :: m a -> (a -> m b) -> m b
+ (>>) :: m a -> m b -> m b
+ return :: a -> m a
+ fail :: GHC.Base.String -> m a
+-- imported via Data.Maybe
+catMaybes :: [Maybe a] -> [a]
+fromJust :: Maybe a -> a
+fromMaybe :: a -> Maybe a -> a
+isJust :: Maybe a -> GHC.Types.Bool
+isNothing :: Maybe a -> GHC.Types.Bool
+listToMaybe :: [a] -> Maybe a
+mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+maybe :: b -> (a -> b) -> Maybe a -> b
+maybeToList :: Maybe a -> [a]
+-- imported via Data.Maybe, Prelude
+Just :: a -> Maybe a
+data Maybe a = Nothing | Just a
+Nothing :: Maybe a
+-- imported via Prelude
+(+) :: GHC.Num.Num a => a -> a -> a
+(=<<) :: Monad m => (a -> m b) -> m a -> m b
+class Eq a where
+ (GHC.Classes.==) :: a -> a -> GHC.Types.Bool
+ (GHC.Classes./=) :: a -> a -> GHC.Types.Bool
+-- imported via Prelude, T
+Prelude.length :: [a] -> GHC.Types.Int
+-- imported via T
+data T.Integer
+ = integer-gmp:GHC.Integer.Type.S# GHC.Prim.Int#
+ | integer-gmp:GHC.Integer.Type.J# GHC.Prim.Int# GHC.Prim.ByteArray#
+T.length :: Data.ByteString.Internal.ByteString -> GHC.Types.Int
+:browse! T
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: a1 -> b
+ c4 :: a1 -> b
+c1 :: (C a b, N b) => a -> b
+c2 :: (C a b, N b, S b) => a -> b
+c3 :: C a b => forall a1. a1 -> b
+c4 :: C a b => forall a1. a1 -> b
+:browse! T -- with -fprint-explicit-foralls
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: forall a1. a1 -> b
+ c4 :: forall a1. a1 -> b
+c1 :: forall a b. (C a b, N b) => a -> b
+c2 :: forall a b. (C a b, N b, S b) => a -> b
+c3 :: forall a b. C a b => forall a1. a1 -> b
+c4 :: forall a b. C a b => forall a1. a1 -> b
+-- test :browse! <target> relative to different contexts
+:browse! C -- from *C>
+-- defined locally
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+-- imported via D
+f :: forall a. Num a => a -> a
+:browse! C -- from *B>, after :add B
+-- imported via C
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+f :: forall a. Num a => a -> a
+:browse! C -- from *C>, after :m *C
+-- defined locally
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+-- imported via D
+f :: forall a. Num a => a -> a
+:browse! C -- from *D>, after :m *D
+-- not currently imported
+C.g :: forall a. Num a => a -> a
+C.h :: forall a. Integral a => a -> a
+-- defined locally
+f :: forall a. Num a => a -> a
diff --git a/testsuite/tests/ghci/scripts/ghci025.stdout-ghc-7.0 b/testsuite/tests/ghci/scripts/ghci025.stdout-ghc-7.0
new file mode 100644
index 0000000000..d06660c3ef
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci025.stdout-ghc-7.0
@@ -0,0 +1,111 @@
+-- test :browse! functionality
+:browse! *T
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: a1 -> b
+ c4 :: a1 -> b
+c1 :: (C a b, N b) => a -> b
+c2 :: (C a b, N b, S b) => a -> b
+c3 :: C a b => forall a1. a1 -> b
+c4 :: C a b => forall a1. a1 -> b
+-- imported via Control.Monad
+class Monad m => MonadPlus m where
+ mzero :: m a
+ mplus :: m a -> m a -> m a
+mplus :: MonadPlus m => forall a. m a -> m a -> m a
+mzero :: MonadPlus m => forall a. m a
+-- imported via Control.Monad, Prelude
+(>>) :: Monad m => forall a b. m a -> m b -> m b
+(>>=) :: Monad m => forall a b. m a -> (a -> m b) -> m b
+fail :: Monad m => forall a. GHC.Base.String -> m a
+return :: Monad m => forall a. a -> m a
+-- imported via Control.Monad, Prelude, T
+class Monad m where
+ (>>=) :: m a -> (a -> m b) -> m b
+ (>>) :: m a -> m b -> m b
+ return :: a -> m a
+ fail :: GHC.Base.String -> m a
+-- imported via Data.Maybe
+catMaybes :: [Maybe a] -> [a]
+fromJust :: Maybe a -> a
+fromMaybe :: a -> Maybe a -> a
+isJust :: Maybe a -> GHC.Bool.Bool
+isNothing :: Maybe a -> GHC.Bool.Bool
+listToMaybe :: [a] -> Maybe a
+mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+maybe :: b -> (a -> b) -> Maybe a -> b
+maybeToList :: Maybe a -> [a]
+-- imported via Data.Maybe, Prelude
+Just :: a -> Maybe a
+data Maybe a = Nothing | Just a
+Nothing :: Maybe a
+-- imported via Prelude
+(+) :: GHC.Num.Num a => a -> a -> a
+(=<<) :: Monad m => (a -> m b) -> m a -> m b
+class Eq a where
+ (GHC.Classes.==) :: a -> a -> GHC.Bool.Bool
+ (GHC.Classes./=) :: a -> a -> GHC.Bool.Bool
+-- imported via Prelude, T
+Prelude.length :: [a] -> GHC.Types.Int
+-- imported via T
+data T.Integer
+ = integer-gmp:GHC.Integer.Type.S# GHC.Prim.Int#
+ | integer-gmp:GHC.Integer.Type.J# GHC.Prim.Int# GHC.Prim.ByteArray#
+T.length :: Data.ByteString.Internal.ByteString -> GHC.Types.Int
+:browse! T
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: a1 -> b
+ c4 :: a1 -> b
+c1 :: (C a b, N b) => a -> b
+c2 :: (C a b, N b, S b) => a -> b
+c3 :: C a b => forall a1. a1 -> b
+c4 :: C a b => forall a1. a1 -> b
+:browse! T -- with -fprint-explicit-foralls
+-- defined locally
+T.length :: T.Integer
+class N a
+class S a
+class C a b where
+ c1 :: N b => a -> b
+ c2 :: (N b, S b) => a -> b
+ c3 :: forall a1. a1 -> b
+ c4 :: forall a1. a1 -> b
+c1 :: forall a b. (C a b, N b) => a -> b
+c2 :: forall a b. (C a b, N b, S b) => a -> b
+c3 :: forall a b. C a b => forall a1. a1 -> b
+c4 :: forall a b. C a b => forall a1. a1 -> b
+-- test :browse! <target> relative to different contexts
+:browse! C -- from *C>
+-- defined locally
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+-- imported via D
+f :: forall a. Num a => a -> a
+:browse! C -- from *B>, after :add B
+-- imported via C
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+f :: forall a. Num a => a -> a
+:browse! C -- from *C>, after :m *C
+-- defined locally
+g :: forall a. Num a => a -> a
+h :: forall a. Integral a => a -> a
+-- imported via D
+f :: forall a. Num a => a -> a
+:browse! C -- from *D>, after :m *D
+-- not currently imported
+C.g :: forall a. Num a => a -> a
+C.h :: forall a. Integral a => a -> a
+-- defined locally
+f :: forall a. Num a => a -> a
diff --git a/testsuite/tests/ghci/scripts/ghci026.script b/testsuite/tests/ghci/scripts/ghci026.script
new file mode 100644
index 0000000000..871de86741
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci026.script
@@ -0,0 +1,6 @@
+import Data.Maybe
+:browse
+:l ../prog002/A1.hs
+:browse
+:add ../prog002/B.hs
+:browse
diff --git a/testsuite/tests/ghci/scripts/ghci026.stdout b/testsuite/tests/ghci/scripts/ghci026.stdout
new file mode 100644
index 0000000000..163cca29b6
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci026.stdout
@@ -0,0 +1,15 @@
+data Maybe a = Nothing | Just a
+catMaybes :: [Maybe a] -> [a]
+fromJust :: Maybe a -> a
+fromMaybe :: a -> Maybe a -> a
+isJust :: Maybe a -> Bool
+isNothing :: Maybe a -> Bool
+listToMaybe :: [a] -> Maybe a
+mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+maybe :: b -> (a -> b) -> Maybe a -> b
+maybeToList :: Maybe a -> [a]
+data T = A Int | B Float
+f :: Double -> Double
+g :: Double -> Double
+h :: Integral a => a -> a
+f :: Double -> Double
diff --git a/testsuite/tests/ghci/scripts/ghci027.hs b/testsuite/tests/ghci/scripts/ghci027.hs
new file mode 100644
index 0000000000..df99d7d1c0
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci027.hs
@@ -0,0 +1,5 @@
+-- Test for #1617
+module Main where
+import Prelude ()
+--import Control.Monad (mplus)
+import qualified Control.Monad (mplus)
diff --git a/testsuite/tests/ghci/scripts/ghci027.script b/testsuite/tests/ghci/scripts/ghci027.script
new file mode 100644
index 0000000000..aaf0ac5544
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci027.script
@@ -0,0 +1,8 @@
+-- Test for #1617
+:!cp ghci027_1.hs ghci027.hs
+:load ghci027
+:browse *Main
+:!sleep 1
+:!cp ghci027_2.hs ghci027.hs
+:reload
+:browse *Main
diff --git a/testsuite/tests/ghci/scripts/ghci027.stdout b/testsuite/tests/ghci/scripts/ghci027.stdout
new file mode 100644
index 0000000000..2f627b46ec
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci027.stdout
@@ -0,0 +1,6 @@
+class GHC.Base.Monad m => Control.Monad.MonadPlus m where
+ ...
+ mplus :: m a -> m a -> m a
+class GHC.Base.Monad m => Control.Monad.MonadPlus m where
+ ...
+ Control.Monad.mplus :: m a -> m a -> m a
diff --git a/testsuite/tests/ghci/scripts/ghci027_1.hs b/testsuite/tests/ghci/scripts/ghci027_1.hs
new file mode 100644
index 0000000000..a1a7bfac37
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci027_1.hs
@@ -0,0 +1,5 @@
+-- Test for #1617
+module Main where
+import Prelude ()
+import Control.Monad (mplus)
+import qualified Control.Monad (mplus)
diff --git a/testsuite/tests/ghci/scripts/ghci027_2.hs b/testsuite/tests/ghci/scripts/ghci027_2.hs
new file mode 100644
index 0000000000..df99d7d1c0
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci027_2.hs
@@ -0,0 +1,5 @@
+-- Test for #1617
+module Main where
+import Prelude ()
+--import Control.Monad (mplus)
+import qualified Control.Monad (mplus)
diff --git a/testsuite/tests/ghci/scripts/ghci028.script b/testsuite/tests/ghci/scripts/ghci028.script
new file mode 100644
index 0000000000..5f527c13f6
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci028.script
@@ -0,0 +1,4 @@
+-- Testing that script input is interpreted at UTF-8
+:set -XUnicodeSyntax -XRankNTypes
+let (∘) :: ∀ α β γ . (β → γ) → (α → β) → (α → γ); (f ∘ g) x = f (g x)
+reverse ∘ map Data.Char.toUpper $ "fish"
diff --git a/testsuite/tests/ghci/scripts/ghci028.stdout b/testsuite/tests/ghci/scripts/ghci028.stdout
new file mode 100644
index 0000000000..a6ed183d5f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci028.stdout
@@ -0,0 +1 @@
+"HSIF"
diff --git a/testsuite/tests/ghci/scripts/ghci029.script b/testsuite/tests/ghci/scripts/ghci029.script
new file mode 100644
index 0000000000..e669b278e0
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci029.script
@@ -0,0 +1,11 @@
+-- :main and :run
+let main = System.Environment.getArgs >>= print
+:main foo bar
+:main foo "bar baz"
+:main ["foo", "bar baz"]
+let foo = putStrLn "foo" >> System.Environment.getArgs >>= print
+let bar = putStrLn "bar" >> System.Environment.getArgs >>= print
+:set -main-is foo
+:main foo "bar baz"
+:run bar ["foo", "bar baz"]
+
diff --git a/testsuite/tests/ghci/scripts/ghci029.stdout b/testsuite/tests/ghci/scripts/ghci029.stdout
new file mode 100644
index 0000000000..05cc525d47
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci029.stdout
@@ -0,0 +1,7 @@
+["foo","bar"]
+["foo","bar baz"]
+["foo","bar baz"]
+foo
+["foo","bar baz"]
+bar
+["foo","bar baz"]
diff --git a/testsuite/tests/ghci/scripts/ghci030.hs b/testsuite/tests/ghci/scripts/ghci030.hs
new file mode 100644
index 0000000000..ed95ea9661
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci030.hs
@@ -0,0 +1,9 @@
+-- Trac #2082
+-- If we :i D or C, we should see parentheses around (Int -> a)
+
+{-# LANGUAGE ExistentialQuantification #-}
+
+module Foo where
+
+data D = forall a . C (Int -> a) Char
+
diff --git a/testsuite/tests/ghci/scripts/ghci030.script b/testsuite/tests/ghci/scripts/ghci030.script
new file mode 100644
index 0000000000..b0821e8388
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci030.script
@@ -0,0 +1,3 @@
+:l ghci030
+:i D
+:i C
diff --git a/testsuite/tests/ghci/scripts/ghci030.stdout b/testsuite/tests/ghci/scripts/ghci030.stdout
new file mode 100644
index 0000000000..24fa768e6a
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci030.stdout
@@ -0,0 +1,6 @@
+data D where
+ C :: (Int -> a) -> Char -> D
+ -- Defined at ghci030.hs:8:6
+data D where
+ C :: (Int -> a) -> Char -> D
+ -- Defined at ghci030.hs:8:21
diff --git a/testsuite/tests/ghci/scripts/ghci031.hs b/testsuite/tests/ghci/scripts/ghci031.hs
new file mode 100644
index 0000000000..ef5d985f75
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci031.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE DatatypeContexts #-}
+-- Trac #2138
+-- If we :i D, we should see the Eq constraint
+
+module Foo where
+
+data Eq a => D a = C a
+
diff --git a/testsuite/tests/ghci/scripts/ghci031.script b/testsuite/tests/ghci/scripts/ghci031.script
new file mode 100644
index 0000000000..23cba64bac
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci031.script
@@ -0,0 +1,2 @@
+:l ghci031
+:i D
diff --git a/testsuite/tests/ghci/scripts/ghci031.stderr b/testsuite/tests/ghci/scripts/ghci031.stderr
new file mode 100644
index 0000000000..8e4256c7f4
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci031.stderr
@@ -0,0 +1,3 @@
+
+ghci031.hs:1:14:
+ Warning: -XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
diff --git a/testsuite/tests/ghci/scripts/ghci031.stdout b/testsuite/tests/ghci/scripts/ghci031.stdout
new file mode 100644
index 0000000000..018dc4bc58
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci031.stdout
@@ -0,0 +1 @@
+data Eq a => D a = C a -- Defined at ghci031.hs:7:14
diff --git a/testsuite/tests/ghci/scripts/ghci032.script b/testsuite/tests/ghci/scripts/ghci032.script
new file mode 100644
index 0000000000..cea8afff15
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci032.script
@@ -0,0 +1,8 @@
+
+import System.FilePath
+import System.Directory
+wd1 <- getCurrentDirectory
+setCurrentDirectory ".."
+wd2 <- getCurrentDirectory
+wd1_parent <- canonicalizePath (wd1 </> "..")
+wd1_parent `equalFilePath` wd2 \ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/ghci032.stdout b/testsuite/tests/ghci/scripts/ghci032.stdout
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci032.stdout
@@ -0,0 +1 @@
+True
diff --git a/testsuite/tests/ghci/scripts/ghci033.hs b/testsuite/tests/ghci/scripts/ghci033.hs
new file mode 100644
index 0000000000..b67960068d
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci033.hs
@@ -0,0 +1,5 @@
+-- Test Trac #1930: display of infix constructors
+module Test where
+
+data Foo = Foo1 Int
+ | Int `InfixCon` Bool \ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/ghci033.script b/testsuite/tests/ghci/scripts/ghci033.script
new file mode 100644
index 0000000000..3911618777
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci033.script
@@ -0,0 +1,2 @@
+:l ghci033
+:i Foo
diff --git a/testsuite/tests/ghci/scripts/ghci033.stdout b/testsuite/tests/ghci/scripts/ghci033.stdout
new file mode 100644
index 0000000000..748fab88b3
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci033.stdout
@@ -0,0 +1,2 @@
+data Foo = Foo1 Int | Int `InfixCon` Bool
+ -- Defined at ghci033.hs:4:6-8
diff --git a/testsuite/tests/ghci/scripts/ghci034.script b/testsuite/tests/ghci/scripts/ghci034.script
new file mode 100644
index 0000000000..386760081f
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci034.script
@@ -0,0 +1,3 @@
+:i thisIsNotDefined
+-- In 6.9, GHCi used to exit at this point
+putStrLn "Foo"
diff --git a/testsuite/tests/ghci/scripts/ghci034.stderr b/testsuite/tests/ghci/scripts/ghci034.stderr
new file mode 100644
index 0000000000..59501b2443
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci034.stderr
@@ -0,0 +1,2 @@
+
+Top level: Not in scope: `thisIsNotDefined'
diff --git a/testsuite/tests/ghci/scripts/ghci034.stdout b/testsuite/tests/ghci/scripts/ghci034.stdout
new file mode 100644
index 0000000000..bc56c4d894
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci034.stdout
@@ -0,0 +1 @@
+Foo
diff --git a/testsuite/tests/ghci/scripts/ghci035.script b/testsuite/tests/ghci/scripts/ghci035.script
new file mode 100644
index 0000000000..dcf5adc0de
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci035.script
@@ -0,0 +1,4 @@
+:set -Wall
+-- In 6.12, GHCi used to warn that x was unused (trac #3813):
+x <- return True
+x
diff --git a/testsuite/tests/ghci/scripts/ghci035.stdout b/testsuite/tests/ghci/scripts/ghci035.stdout
new file mode 100644
index 0000000000..0ca95142bb
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci035.stdout
@@ -0,0 +1 @@
+True
diff --git a/testsuite/tests/ghci/scripts/ghci036.script b/testsuite/tests/ghci/scripts/ghci036.script
new file mode 100644
index 0000000000..3615e07252
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci036.script
@@ -0,0 +1,19 @@
+import Data.List (nub)
+:t nubBy
+import Data.List (nubBy)
+:t nub
+:m +Data.List
+:m -Data.List
+:t nub
+:t nubBy
+import Data.List hiding (nub)
+:t nub
+import qualified Data.List as L
+:t nub
+:t L.nub
+:m +Data.List
+:t L.nub
+:m -Data.List
+:t L.nub
+:m Prelude
+:t nub \ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/ghci036.stderr b/testsuite/tests/ghci/scripts/ghci036.stderr
new file mode 100644
index 0000000000..2470e3402b
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci036.stderr
@@ -0,0 +1,22 @@
+
+<interactive>:1:1: Not in scope: `nubBy'
+
+<interactive>:1:1: Not in scope: `nub'
+
+<interactive>:1:1: Not in scope: `nubBy'
+
+<interactive>:1:1: Not in scope: `nub'
+
+<interactive>:1:1:
+ Not in scope: `nub'
+ Perhaps you meant `L.nub' (imported from Data.List)
+
+<interactive>:1:1:
+ Failed to load interface for `L'
+ Use -v to see a list of the files searched for.
+
+<interactive>:1:1:
+ Failed to load interface for `L'
+ Use -v to see a list of the files searched for.
+
+<interactive>:1:1: Not in scope: `nub'
diff --git a/testsuite/tests/ghci/scripts/ghci036.stdout b/testsuite/tests/ghci/scripts/ghci036.stdout
new file mode 100644
index 0000000000..739118210d
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci036.stdout
@@ -0,0 +1,2 @@
+nub :: Eq a => [a] -> [a]
+L.nub :: Eq a => [a] -> [a]
diff --git a/testsuite/tests/ghci/scripts/ghci037.script b/testsuite/tests/ghci/scripts/ghci037.script
new file mode 100644
index 0000000000..1407625632
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci037.script
@@ -0,0 +1,3 @@
+x <- Control.Concurrent.myThreadId
+y <- Control.Concurrent.myThreadId
+print (x == y) \ No newline at end of file
diff --git a/testsuite/tests/ghci/scripts/ghci037.stdout b/testsuite/tests/ghci/scripts/ghci037.stdout
new file mode 100644
index 0000000000..91d6f80f27
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/ghci037.stdout
@@ -0,0 +1,2 @@
+False
+True