diff options
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/FD4.hs')
-rw-r--r-- | testsuite/tests/typecheck/should_compile/FD4.hs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/testsuite/tests/typecheck/should_compile/FD4.hs b/testsuite/tests/typecheck/should_compile/FD4.hs new file mode 100644 index 0000000000..5d5869ca01 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/FD4.hs @@ -0,0 +1,28 @@ +{-# LANGUAGE
+ MultiParamTypeClasses,
+ FunctionalDependencies,
+ UndecidableInstances,
+ OverlappingInstances,
+ FlexibleInstances,
+ EmptyDataDecls #-}
+
+-- Trac #1797
+
+module ShouldCompile where
+
+data True
+
+data False
+
+class TypeEq type1 type2 result | type1 type2 -> result where
+ typeEq :: type1 -> type2 -> result
+
+instance TypeEq soleType soleType True where
+ typeEq _ _ = undefined
+
+instance (TypeCast False result) => TypeEq type1 type2 result where
+ typeEq _ _ = undefined
+
+class TypeCast type1 type2 | type1 -> type2, type2 -> type1
+
+instance TypeCast soleType soleType
|