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, (t :: [k]), (h :: 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, (t :: [a]), (h :: a)] K a (h : t) = 'Just h -- Defined at T7939.hs:21:1 K :: [a] -> Maybe a