summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/FD4.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/typecheck/should_compile/FD4.hs')
-rw-r--r--testsuite/tests/typecheck/should_compile/FD4.hs28
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