diff options
Diffstat (limited to 'testsuite/tests/indexed-types/should_compile/T2448.hs')
-rw-r--r-- | testsuite/tests/indexed-types/should_compile/T2448.hs | 17 |
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) |