Merge branch 'master' of http://darcs.haskell.org/testsuite
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 13 Apr 2012 06:47:41 +0000 (07:47 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 13 Apr 2012 06:47:41 +0000 (07:47 +0100)
Conflicts:
tests/typecheck/should_fail/all.T

testsuite/tests/typecheck/should_fail/T5691.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T5691.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/all.T

diff --git a/testsuite/tests/typecheck/should_fail/T5691.hs b/testsuite/tests/typecheck/should_fail/T5691.hs
new file mode 100644 (file)
index 0000000..c63ba7b
--- /dev/null
@@ -0,0 +1,29 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+
+module GHCBug where
+
+import Control.Applicative as Ap
+import Control.Monad (MonadPlus, mplus, mzero)
+import Control.Monad.Identity (Identity, runIdentity)
+
+newtype PrintRuleInterp v = MkPRI { printRule_ :: Int -> String }
+class Test p where
+  test :: p a -> p a
+
+instance Test PrintRuleInterp where
+  test (f :: p a) =
+    MkPRI $ printRule_ f 
+
+
+newtype RecDecParser a = MkRD {
+  parseRD :: String -> [(String, a)]
+  }
+
+pure_ v = MkRD $ \s -> pure (s , v)
+
+instance MonadPlus RecDecParser where
+  mzero = MkRD $ const Ap.empty
+  mplus a b = MkRD $ const Ap.empty
+
+
+
diff --git a/testsuite/tests/typecheck/should_fail/T5691.stderr b/testsuite/tests/typecheck/should_fail/T5691.stderr
new file mode 100644 (file)
index 0000000..bfc572c
--- /dev/null
@@ -0,0 +1,14 @@
+
+T5691.hs:15:24:
+    Couldn't match type `p' with `PrintRuleInterp'
+    Expected type: PrintRuleInterp a
+      Actual type: p a
+    In the first argument of `printRule_', namely `f'
+    In the second argument of `($)', namely `printRule_ f'
+    In the expression: MkPRI $ printRule_ f
+
+T5691.hs:24:10:
+    No instance for (Monad RecDecParser)
+      arising from the superclasses of an instance declaration
+    Possible fix: add an instance declaration for (Monad RecDecParser)
+    In the instance declaration for `MonadPlus RecDecParser'
index e0f95bf..42e0364 100644 (file)
@@ -268,6 +268,7 @@ test('T3592', normal, compile_fail, [''])
 test('T5570', normal, compile_fail, [''])
 test('T5573a', normal, compile_fail, [''])
 test('T5573b', normal, compile_fail, [''])
+test('T5691', normal, compile_fail, [''])
 test('T5689', normal, compile_fail, [''])
 test('T5684', normal, compile_fail, [''])
 test('T5858', normal, compile_fail, [''])