From 16514f272fb42af6e9c7674a9bd6c9dce369231f Mon Sep 17 00:00:00 2001 From: David Terei Date: Wed, 20 Jul 2011 11:09:03 -0700 Subject: Move tests from tests/ghc-regress/* to just tests/* --- testsuite/tests/typecheck/should_compile/tc178.hs | 35 +++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 testsuite/tests/typecheck/should_compile/tc178.hs (limited to 'testsuite/tests/typecheck/should_compile/tc178.hs') diff --git a/testsuite/tests/typecheck/should_compile/tc178.hs b/testsuite/tests/typecheck/should_compile/tc178.hs new file mode 100644 index 0000000000..2a181208d4 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/tc178.hs @@ -0,0 +1,35 @@ +{-# LANGUAGE FlexibleInstances #-} + +-- This one tickled the kind-check in TcType.matchTys, +-- which should use sub-kinding + +module ShouldCompile where + +type TypeRep = () + +class Typeable2 t where + typeOf2 :: t a b -> TypeRep + +class Typeable1 t where + typeOf1 :: t a -> TypeRep + +class Typeable0 a where + typeOf0 :: a -> TypeRep + +instance Typeable2 (->) where + typeOf2 = undefined + +instance (Typeable2 t, Typeable0 a) => Typeable1 (t a) where + typeOf1 = undefined + +instance (Typeable1 t, Typeable0 a) => Typeable0 (t a) where + typeOf0 = undefined + +class Typeable0 a => Data0 a where + dataTypeOf0 :: a -> Bool + +instance (Data0 a, Data0 b) => Data0 (a -> b) where + dataTypeOf0 = undefined + +foo :: (Typeable0 a, Typeable0 b) => (a -> b) -> TypeRep +foo f = typeOf0 f -- cgit v1.2.1