summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T2714.hs
blob: 7f6a12fb2c97bbed0dbd24ff6c2d5d2622b9d92e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{-# LANGUAGE ScopedTypeVariables, RankNTypes #-}

-- #2714

module T2714 where

f :: ((a -> b) -> b) -> (forall c. c -> a)
f x = ffmap x

ffmap :: Functor f => (p->q) -> f p -> f q
ffmap = error "urk"

{-
   a ~ f q
   c ~ f p
   (p->q) ~ (a->b) -> b

 =>
   a ~ f q
   c ~ f p
   p ~ a->b
   q ~ b
 =>
   a ~ f b
   c ~ f (a->b)
-}