Test Trac #6069
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 31 Oct 2012 09:54:08 +0000 (09:54 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Wed, 31 Oct 2012 09:54:08 +0000 (09:54 +0000)
testsuite/tests/typecheck/should_fail/T6069.hs [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/T6069.stderr [new file with mode: 0644]
testsuite/tests/typecheck/should_fail/all.T

diff --git a/testsuite/tests/typecheck/should_fail/T6069.hs b/testsuite/tests/typecheck/should_fail/T6069.hs
new file mode 100644 (file)
index 0000000..8513aab
--- /dev/null
@@ -0,0 +1,17 @@
+{-# LANGUAGE Rank2Types #-}
+
+module T6069 where
+
+import Control.Monad.ST
+import Data.STRef
+
+fourty_two :: forall s. ST s Int
+fourty_two = do
+   x <- newSTRef (42::Int)
+   readSTRef x
+
+f1 = (print . runST) fourty_two -- (1)
+f2 = (print . runST) $ fourty_two -- (2)
+f3 = ((print . runST) $) fourty_two -- (3)
+
+
diff --git a/testsuite/tests/typecheck/should_fail/T6069.stderr b/testsuite/tests/typecheck/should_fail/T6069.stderr
new file mode 100644 (file)
index 0000000..b6ce779
--- /dev/null
@@ -0,0 +1,24 @@
+
+T6069.hs:13:15:
+    Couldn't match type `ST s0 Int' with `forall s. ST s b0'
+    Expected type: ST s0 Int -> b0
+      Actual type: (forall s. ST s b0) -> b0
+    In the second argument of `(.)', namely `runST'
+    In the expression: print . runST
+    In the expression: (print . runST) fourty_two
+
+T6069.hs:14:15:
+    Couldn't match type `ST s1 Int' with `forall s. ST s b1'
+    Expected type: ST s1 Int -> b1
+      Actual type: (forall s. ST s b1) -> b1
+    In the second argument of `(.)', namely `runST'
+    In the expression: (print . runST)
+    In the expression: (print . runST) $ fourty_two
+
+T6069.hs:15:16:
+    Couldn't match type `ST s2 Int' with `forall s. ST s b2'
+    Expected type: ST s2 Int -> b2
+      Actual type: (forall s. ST s b2) -> b2
+    In the second argument of `(.)', namely `runST'
+    In the first argument of `($)', namely `(print . runST)'
+    In the expression: (print . runST) $
index a621298..7e97f72 100644 (file)
@@ -285,3 +285,4 @@ test('T7210', normal, compile_fail, [''])
 test('T6161', normal, compile_fail, [''])
 test('T7368', normal, compile_fail, [''])
 test('T7264', normal, compile_fail, [''])
+test('T6069', normal, compile_fail, [''])