ApplicativeDo: document behaviour with strict patterns (#13875)
[ghc.git] / testsuite / tests / ado / T13242a.stderr
1
2 T13242a.hs:10:5: error:
3     • Couldn't match expected type ‘a0’ with actual type ‘a’
4         because type variable ‘a’ would escape its scope
5       This (rigid, skolem) type variable is bound by
6         a pattern with constructor: A :: forall a. Eq a => a -> T,
7         in a pattern binding in
8              'do' block
9         at T13242a.hs:10:3-5
10     • In the expression:
11         do A x <- undefined
12            _ <- return 'a'
13            _ <- return 'b'
14            return (x == x)
15       In an equation for ‘test’:
16           test
17             = do A x <- undefined
18                  _ <- return 'a'
19                  _ <- return 'b'
20                  return (x == x)
21     • Relevant bindings include x :: a (bound at T13242a.hs:10:5)
22
23 T13242a.hs:13:11: error:
24     • Ambiguous type variable ‘a0’ arising from a use of ‘==’
25       prevents the constraint ‘(Eq a0)’ from being solved.
26       Relevant bindings include x :: a0 (bound at T13242a.hs:10:5)
27       Probable fix: use a type annotation to specify what ‘a0’ should be.
28       These potential instances exist:
29         instance Eq Ordering -- Defined in ‘GHC.Classes’
30         instance Eq Integer
31           -- Defined in ‘integer-gmp-1.0.0.1:GHC.Integer.Type’
32         instance Eq a => Eq (Maybe a) -- Defined in ‘GHC.Base’
33         ...plus 22 others
34         ...plus five instances involving out-of-scope types
35         (use -fprint-potential-instances to see them all)
36     • In a stmt of a 'do' block: return (x == x)
37       In the expression:
38         do A x <- undefined
39            _ <- return 'a'
40            _ <- return 'b'
41            return (x == x)
42       In an equation for ‘test’:
43           test
44             = do A x <- undefined
45                  _ <- return 'a'
46                  _ <- return 'b'
47                  return (x == x)