Remove the type-checking knot.
[ghc.git] / testsuite / tests / polykinds / T7176.hs
1 {-# LANGUAGE TypeFamilies, DataKinds, PolyKinds, GADTs, RankNTypes #-}
2
3 module T7176 where
4
5 type family Sing (a :: b)
6
7 data SMaybe (a :: Maybe c) where
8 SNothing :: SMaybe Nothing
9 SJust :: Sing a -> SMaybe (Just a)
10 type instance Sing (a :: Maybe d) = SMaybe a
11
12 sIsJust :: forall (a :: Maybe e). Sing a -> ()
13 sIsJust SNothing = ()
14 sIsJust (SJust _) = ()
15