summaryrefslogtreecommitdiff
path: root/testsuite/tests/partial-sigs/should_compile/NamedWildcardsAsTyVars.hs
blob: 8d824f5fec6508108916eea2939cc40855d7d8ee (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
{-# LANGUAGE TypeFamilies, NamedWildCards, PolyKinds #-}

-- All declarations below are accepted when the NamedWildCards extension is not
-- enabled and the identifiers starting with _ are parsed as type variables.
-- They should remain valid when the extension is on.
--
-- See Trac #11098 and comments in #10982

module NamedWildcardsAsTyVars where

type Synonym _a = _a -> _a

data A a _b = ACon a a Int

data B _a b = BCon _a (_a, Bool)

type family C a b where
  C _a _b = _a -> _a

type family D a b where
  D _a b = _a -> (_a, Int)

data family E a b
data instance E a _b = ECon a (a, Int)

data family F a b
data instance F _a b = FCon _a _a Bool

class G _a where
    gfoo :: _a -> _a

instance G Int where
    gfoo = (*2)

type family H a b where
  H _a _a = Int
  H _a _b = Bool

hfoo :: H String String
hfoo = 10

hbar :: H String Int
hbar = False

type family I (_a :: k) where
    I _t = Int