blob: 493c6538d13805a639b309b32cbfd70208e72dd9 (
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
|
{-# LANGUAGE Haskell2010 #-}
{-# LANGUAGE TypeFamilies, PolyKinds, DataKinds, TypeOperators #-}
module T7939 where
import Data.Kind (Type)
class Foo a where
type Bar a b
type family F a
type instance F Int = Bool
type family G a where
G Int = Bool
type family H a where
H False = True
type family J a where
J '[] = False
J (h ': t) = True
type family K a where
K '[] = Nothing
K (h ': t) = Just h
type family L (a :: k) (b :: Type) :: k where
L Int Int = Bool
L Maybe Bool = IO
|