singletons-2.4: tests/compile-and-dump/Singletons/T209.ghc84.template
Singletons/T209.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| m :: a -> b -> Bool -> Bool
m _ _ x = x
class C a b
data Hm
= Hm
deriving anyclass (C Bool)
deriving anyclass instance C a a => C a (Maybe a) |]
======>
class C a b
m :: a -> b -> Bool -> Bool
m _ _ x = x
data Hm
= Hm
deriving anyclass (C Bool)
deriving anyclass instance C a a => C a (Maybe a)
type HmSym0 = Hm
type MSym3 (t :: a0123456789876543210) (t :: b0123456789876543210) (t :: Bool) =
M t t t
instance SuppressUnusedWarnings MSym2 where
suppressUnusedWarnings
= snd ((GHC.Tuple.(,) MSym2KindInference) GHC.Tuple.())
data MSym2 (l :: a0123456789876543210) (l :: b0123456789876543210) (l :: TyFun Bool Bool)
= forall arg. SameKind (Apply (MSym2 l l) arg) (MSym3 l l arg) =>
MSym2KindInference
type instance Apply (MSym2 l l) l = M l l l
instance SuppressUnusedWarnings MSym1 where
suppressUnusedWarnings
= snd ((GHC.Tuple.(,) MSym1KindInference) GHC.Tuple.())
data MSym1 (l :: a0123456789876543210) (l :: TyFun b0123456789876543210 (TyFun Bool Bool
-> GHC.Types.Type))
= forall arg. SameKind (Apply (MSym1 l) arg) (MSym2 l arg) =>
MSym1KindInference
type instance Apply (MSym1 l) l = MSym2 l l
instance SuppressUnusedWarnings MSym0 where
suppressUnusedWarnings
= snd ((GHC.Tuple.(,) MSym0KindInference) GHC.Tuple.())
data MSym0 (l :: TyFun a0123456789876543210 (TyFun b0123456789876543210 (TyFun Bool Bool
-> GHC.Types.Type)
-> GHC.Types.Type))
= forall arg. SameKind (Apply MSym0 arg) (MSym1 arg) =>
MSym0KindInference
type instance Apply MSym0 l = MSym1 l
type family M (a :: a) (a :: b) (a :: Bool) :: Bool where
M _ _ x = x
class PC (a :: GHC.Types.Type) (b :: GHC.Types.Type)
instance PC Bool Hm
instance PC a (Maybe a)
sM ::
forall (t :: a) (t :: b) (t :: Bool).
Sing t
-> Sing t
-> Sing t -> Sing (Apply (Apply (Apply MSym0 t) t) t :: Bool)
sM _ _ (sX :: Sing x) = sX
data instance Sing (z :: Hm) where SHm :: Sing Hm
type SHm = (Sing :: Hm -> GHC.Types.Type)
instance SingKind Hm where
type Demote Hm = Hm
fromSing SHm = Hm
toSing Hm = SomeSing SHm
class SC a b
instance SC Bool Hm
instance SC a a => SC a (Maybe a)
instance SingI Hm where
sing = SHm