summaryrefslogtreecommitdiff
path: root/testsuite/tests/polykinds/T7438.stderr
diff options
context:
space:
mode:
authorRichard Eisenberg <eir@cis.upenn.edu>2016-01-13 23:29:17 -0500
committerRichard Eisenberg <eir@cis.upenn.edu>2016-01-27 09:33:26 -0500
commit00cbbab3362578df44851442408a8b91a2a769fa (patch)
treec8f79d003510e191adeab0d1b98f20ebde40d914 /testsuite/tests/polykinds/T7438.stderr
parent2899aa580d633103fc551e36c977720b94f5b41c (diff)
downloadhaskell-00cbbab3362578df44851442408a8b91a2a769fa.tar.gz
Refactor the typechecker to use ExpTypes.
The idea here is described in [wiki:Typechecker]. Briefly, this refactor keeps solid track of "synthesis" mode vs "checking" in GHC's bidirectional type-checking algorithm. When in synthesis mode, the expected type is just an IORef to write to. In addition, this patch does a significant reworking of RebindableSyntax, allowing much more freedom in the types of the rebindable operators. For example, we can now have `negate :: Int -> Bool` and `(>>=) :: m a -> (forall x. a x -> m b) -> m b`. The magic is in tcSyntaxOp. This addresses tickets #11397, #11452, and #11458. Tests: typecheck/should_compile/{RebindHR,RebindNegate,T11397,T11458} th/T11452
Diffstat (limited to 'testsuite/tests/polykinds/T7438.stderr')
-rw-r--r--testsuite/tests/polykinds/T7438.stderr16
1 files changed, 8 insertions, 8 deletions
diff --git a/testsuite/tests/polykinds/T7438.stderr b/testsuite/tests/polykinds/T7438.stderr
index 46b7181840..d3ed001879 100644
--- a/testsuite/tests/polykinds/T7438.stderr
+++ b/testsuite/tests/polykinds/T7438.stderr
@@ -1,19 +1,19 @@
T7438.hs:6:14: error:
- • Couldn't match expected type ‘r1’ with actual type ‘r’
- ‘r1’ is untouchable
+ • Couldn't match expected type ‘t3’ with actual type ‘t2’
+ ‘t3’ is untouchable
inside the constraints: t1 ~ t
bound by a pattern with constructor:
Nil :: forall k (a :: k). Thrist a a,
in an equation for ‘go’
at T7438.hs:6:4-6
- ‘r1’ is a rigid type variable bound by
- the inferred type of go :: Thrist t t1 -> r -> r1 at T7438.hs:6:1
- ‘r’ is a rigid type variable bound by
- the inferred type of go :: Thrist t t1 -> r -> r1 at T7438.hs:6:1
+ ‘t3’ is a rigid type variable bound by
+ the inferred type of go :: Thrist t t1 -> t2 -> t3 at T7438.hs:6:1
+ ‘t2’ is a rigid type variable bound by
+ the inferred type of go :: Thrist t t1 -> t2 -> t3 at T7438.hs:6:1
Possible fix: add a type signature for ‘go’
• In the expression: acc
In an equation for ‘go’: go Nil acc = acc
• Relevant bindings include
- acc :: r (bound at T7438.hs:6:8)
- go :: Thrist t t1 -> r -> r1 (bound at T7438.hs:6:1)
+ acc :: t2 (bound at T7438.hs:6:8)
+ go :: Thrist t t1 -> t2 -> t3 (bound at T7438.hs:6:1)