1{-# LANGUAGE KindSignatures #-} 2{-# LANGUAGE DataKinds #-} 3{-# LANGUAGE PolyKinds #-} 4 5class C1 (a :: Bool {- 1 -}) where 6 c :: proxy a -> Int 7 8class C2 (a :: [ * ]) 9 10data Baz = Baz 11data Foo = Foo 12 13class C3 (a :: [(Baz, Foo)]) 14 15class C4 (a :: ( * )) 16 17 18class C5 (a :: App foo baz) 19 20class C6 (a :: (parens)) 21 22data X (a :: [*]) 23 24x1 = undefined :: X '[Int] 25x2 = undefined :: X '[Int, Double] 26 27data Y (a :: (*, Bool)) 28 29y1 = undefined :: Y '(Double, True) 30y2 = undefined :: Y '(Double, 'False {-comment-}) 31 32 33z1 = undefined :: X [ a -> b, X '[] ] 34z2 = undefined :: Y (a -> b, True) 35