class Foo (a :: k) where
type family Bar (a :: k) b :: *
-- Defined at T7939.hs:6:4
Bar :: k -> * -> *
type family F a :: * -- Defined at T7939.hs:8:1
type instance F Int = Bool -- Defined at T7939.hs:9:15
F :: * -> *
type family G a :: *
where G Int = Bool
-- Defined at T7939.hs:11:1
G :: * -> *
type family H (a :: Bool) :: Bool
where H 'False = 'True
-- Defined at T7939.hs:14:1
H :: Bool -> Bool
type family J (a :: [k]) :: Bool
where
[k] J k '[] = 'False
[k, (h :: k), (t :: [k])] J k (h : t) = 'True
-- Defined at T7939.hs:17:1
J :: [k] -> Bool
type family K (a1 :: [a]) :: Maybe a
where
[a] K a '[] = 'Nothing
[a, (h :: a), (t :: [a])] K a (h : t) = 'Just h
-- Defined at T7939.hs:21:1
K :: [a] -> Maybe a