summaryrefslogtreecommitdiff
path: root/testsuite/tests/indexed-types/should_compile/T2448.hs
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/indexed-types/should_compile/T2448.hs')
-rw-r--r--testsuite/tests/indexed-types/should_compile/T2448.hs17
1 files changed, 17 insertions, 0 deletions
diff --git a/testsuite/tests/indexed-types/should_compile/T2448.hs b/testsuite/tests/indexed-types/should_compile/T2448.hs
new file mode 100644
index 0000000000..806df3ff4c
--- /dev/null
+++ b/testsuite/tests/indexed-types/should_compile/T2448.hs
@@ -0,0 +1,17 @@
+{-# LANGUAGE TypeFamilies, UndecidableInstances #-}
+
+module T2448 where
+
+-- Demonstrates a bug in propagating type equality constraints
+
+class VectorSpace v where
+ type Scalar v :: *
+
+class VectorSpace v => InnerSpace v
+
+instance (VectorSpace u,VectorSpace v, Scalar u ~ Scalar v) =>
+ VectorSpace (u,v)
+ where
+ type Scalar (u,v) = Scalar u
+
+instance (InnerSpace u,InnerSpace v, Scalar u ~ Scalar v) => InnerSpace (u,v)