summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_fail/T3102.hs
blob: f7d9dad3444fa5dddd3737fa82d355d50b4185f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{-# OPTIONS -XImplicitParams -XRankNTypes #-}
module Bug where

t :: forall a. ((?p :: Int) => a) -> String
t _ = "Hello"

f :: (forall a. a -> String) -> Int
f _ = 3

result :: Int
result = f (\x -> t x)
  -- Simple subsumption (#17775) requires eta expansion here

-- This should work.
-- Elaborated result = f (/\a. \x:a. t @a (\p::Int. x))
-- But it did not work in 8.0.1; fixed in HEAD