diff options
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/tests/quantified-constraints/T19921.hs | 29 | ||||
-rw-r--r-- | testsuite/tests/quantified-constraints/T19921.stderr | 9 | ||||
-rw-r--r-- | testsuite/tests/quantified-constraints/all.T | 1 |
3 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/tests/quantified-constraints/T19921.hs b/testsuite/tests/quantified-constraints/T19921.hs new file mode 100644 index 0000000000..a0ed436784 --- /dev/null +++ b/testsuite/tests/quantified-constraints/T19921.hs @@ -0,0 +1,29 @@ +{-# LANGUAGE + QuantifiedConstraints + , StandaloneKindSignatures + , TypeOperators + , GADTs + , ConstraintKinds + , RankNTypes + , UndecidableInstances + , ImpredicativeTypes +#-} +module Typelevel.Constraint.Repro where + +import Data.Kind (Constraint, Type) + +type Dict :: Constraint -> Type +data Dict c + where + Dict :: c => Dict c + +type (⇒) :: Constraint -> Constraint -> Constraint +type c ⇒ d = c => d +infixr 0 ⇒ + +type (\/) :: Constraint -> Constraint -> Constraint +type a \/ b = (forall r. (a ⇒ r, b ⇒ r) ⇒ r) +infixr 5 \/ + +dict :: Dict ((x \/ y) \/ z ⇒ x \/ y \/ z) +dict = Dict diff --git a/testsuite/tests/quantified-constraints/T19921.stderr b/testsuite/tests/quantified-constraints/T19921.stderr new file mode 100644 index 0000000000..0465b10be9 --- /dev/null +++ b/testsuite/tests/quantified-constraints/T19921.stderr @@ -0,0 +1,9 @@ + +T19921.hs:29:8: error: + • Could not deduce: r arising from a use of ‘Dict’ + from the context: (x \/ y) \/ z + bound by a quantified context at T19921.hs:1:1 + or from: (x ⇒ r, (y \/ z) ⇒ r) + bound by a quantified context at T19921.hs:1:1 + • In the expression: Dict + In an equation for ‘dict’: dict = Dict diff --git a/testsuite/tests/quantified-constraints/all.T b/testsuite/tests/quantified-constraints/all.T index 9bcc30b1a9..799eb09638 100644 --- a/testsuite/tests/quantified-constraints/all.T +++ b/testsuite/tests/quantified-constraints/all.T @@ -30,3 +30,4 @@ test('T17267d', normal, compile_and_run, ['']) test('T17267e', normal, compile_fail, ['']) test('T17458', normal, compile_fail, ['']) test('T18432', normal, compile, ['']) +test('T19921', normal, compile_fail, ['']) |