diff options
author | David Terei <davidterei@gmail.com> | 2011-07-20 11:09:03 -0700 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-07-20 11:26:35 -0700 |
commit | 16514f272fb42af6e9c7674a9bd6c9dce369231f (patch) | |
tree | e4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/ghci/scripts | |
parent | ebd422aed41048476aa61dd4c520d43becd78682 (diff) | |
download | haskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz |
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/ghci/scripts')
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 |