summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_compile/T17772.hs
blob: 75d4cb3877760716c5435c0da3f656a55cf6a0ea (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
27
28
29
{-# LANGUAGE TypeFamilies #-}
module T17772 where

import Data.Kind
import Data.Proxy

class C1 f where
  type T1 (x :: f a) :: Type

  sT1 :: forall a (x :: f a).
         Proxy x -> T1 x

class C2 a where
  type T2 a (x :: b) :: Type

  sT2 :: forall b (x :: b).
         Proxy a -> Proxy x -> T2 a x

class C3 a where
  type T3 a :: b -> Type

  sT3 :: forall b (x :: b).
         Proxy a -> Proxy x -> T3 a x

class C4 a where
  type T4 a :: forall b. b -> Type

  sT4 :: forall b (x :: b).
         Proxy a -> Proxy x -> T4 a x