summaryrefslogtreecommitdiff
path: root/testsuite/tests/backpack/should_fail/T23344.bkp
blob: 3d60ff7b51735aa7f99747227beb03b4d10410cc (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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ImpredicativeTypes #-}

unit p where
  module M where
    import Data.Kind

    type C :: Type -> Constraint
    class C a where
      type family F a :: Type

unit q where
  dependency p
  signature H where
    data T1
    data T2
    data T3
  module N where
    import M ( C(F) )
    import H ( T1, T2, T3 )

    instance C T1 where
      type F T1 = T2
    instance C T2 where
      type F T2 = T3
    instance C T3 where
      type F T3 = T1

unit r where
  dependency p
  module H where
    import Data.Kind

    type S1 :: Type -> Type
    data S1 a = MkS1

    type S2 :: Type
    data S2 = MkS2

    type G :: Type -> Constraint
    class G a where {}

    type T1 = S1 (forall (a :: Type). a -> a)
    type T2 = S1 (G S2 => S2)

    type Y = forall a. a -> a
    type Z = Y
    type T3 = S1 Y

unit s where
  dependency p
  dependency r
  dependency q[H=r:H]