From: simonpj Date: Thu, 3 May 2001 08:18:35 +0000 (+0000) Subject: [project @ 2001-05-03 08:18:35 by simonpj] X-Git-Tag: Approximately_9120_patches~2025 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0e5a48cc13843ff5d31963c711900652cc896649;p=ghc-hetmet.git [project @ 2001-05-03 08:18:35 by simonpj] Add a couple of tests --- diff --git a/ghc/tests/typecheck/should_run/tcrun011.hs b/ghc/tests/typecheck/should_run/tcrun011.hs new file mode 100644 index 0000000..204bd20 --- /dev/null +++ b/ghc/tests/typecheck/should_run/tcrun011.hs @@ -0,0 +1,24 @@ +{-# OPTIONS -fglasgow-exts #-} + +-- !!! Existential data tyes +-- Hugs didn't like this one + +module Main (main) where + + +class MyClass a b where + foo :: a -> b -> Int + +data Special = forall b. (MyClass Int b)=> MkSpecial b +data General a = forall b. (MyClass a b)=> MkGeneral b + +instance MyClass Int Bool where + foo x False = -x + foo x True = x + +xs :: [General Int] +xs = [MkGeneral True, MkGeneral False] + +main = print [foo (3::Int) x | MkGeneral x <- xs] + -- Without the (::Int) part we get an + -- incomprehensible error message :-( diff --git a/ghc/tests/typecheck/should_run/tcrun011.stdout b/ghc/tests/typecheck/should_run/tcrun011.stdout new file mode 100644 index 0000000..7984134 --- /dev/null +++ b/ghc/tests/typecheck/should_run/tcrun011.stdout @@ -0,0 +1 @@ +[3,-3]