blob: a1539d9b06558b69bfc2a3ef8788f536a97b529f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
{-# LANGUAGE LambdaCase, GADTs, ScopedTypeVariables, TypeAbstractions #-}
module T19847a where
data T a b c where
MkT :: forall c y x b. (x~y, c~[x], Ord x) => x -> y -> T (x,y) b c
f :: forall b c. (T (Int,Int) b c -> Bool) -> (b,c)
f = error "urk"
h = f (\case { MkT @_ @_ @_ @Int p q -> True })
-- Check that the @Int argument can affect
-- the type at which `f` is instantiated
-- So h :: forall c. (Int,c)
|