singletons-2.1: tests/compile-and-dump/Promote/Constructors.ghc80.template
Promote/Constructors.hs:(0,0)-(0,0): Splicing declarations
promote
[d| data Foo = Foo | Foo :+ Foo
data Bar = Bar Bar Bar Bar Bar Foo |]
======>
data Foo = Foo | Foo :+ Foo
data Bar = Bar Bar Bar Bar Bar Foo
type FooSym0 = Foo
type (:+$$$) (t :: Foo) (t :: Foo) = (:+) t t
instance SuppressUnusedWarnings (:+$$) where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) (:+$$###) GHC.Tuple.())
data (:+$$) (l :: Foo) (l :: TyFun Foo Foo)
= forall arg. KindOf (Apply ((:+$$) l) arg) ~ KindOf ((:+$$$) l arg) =>
(:+$$###)
type instance Apply ((:+$$) l) l = (:+$$$) l l
instance SuppressUnusedWarnings (:+$) where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) (:+$###) GHC.Tuple.())
data (:+$) (l :: TyFun Foo (TyFun Foo Foo -> GHC.Types.Type))
= forall arg. KindOf (Apply (:+$) arg) ~ KindOf ((:+$$) arg) =>
(:+$###)
type instance Apply (:+$) l = (:+$$) l
type BarSym5 (t :: Bar)
(t :: Bar)
(t :: Bar)
(t :: Bar)
(t :: Foo) =
Bar t t t t t
instance SuppressUnusedWarnings BarSym4 where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) BarSym4KindInference GHC.Tuple.())
data BarSym4 (l :: Bar)
(l :: Bar)
(l :: Bar)
(l :: Bar)
(l :: TyFun Foo Bar)
= forall arg. KindOf (Apply (BarSym4 l l l l) arg) ~ KindOf (BarSym5 l l l l arg) =>
BarSym4KindInference
type instance Apply (BarSym4 l l l l) l = BarSym5 l l l l l
instance SuppressUnusedWarnings BarSym3 where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) BarSym3KindInference GHC.Tuple.())
data BarSym3 (l :: Bar)
(l :: Bar)
(l :: Bar)
(l :: TyFun Bar (TyFun Foo Bar -> GHC.Types.Type))
= forall arg. KindOf (Apply (BarSym3 l l l) arg) ~ KindOf (BarSym4 l l l arg) =>
BarSym3KindInference
type instance Apply (BarSym3 l l l) l = BarSym4 l l l l
instance SuppressUnusedWarnings BarSym2 where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) BarSym2KindInference GHC.Tuple.())
data BarSym2 (l :: Bar)
(l :: Bar)
(l :: TyFun Bar (TyFun Bar (TyFun Foo Bar -> GHC.Types.Type)
-> GHC.Types.Type))
= forall arg. KindOf (Apply (BarSym2 l l) arg) ~ KindOf (BarSym3 l l arg) =>
BarSym2KindInference
type instance Apply (BarSym2 l l) l = BarSym3 l l l
instance SuppressUnusedWarnings BarSym1 where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) BarSym1KindInference GHC.Tuple.())
data BarSym1 (l :: Bar)
(l :: TyFun Bar (TyFun Bar (TyFun Bar (TyFun Foo Bar
-> GHC.Types.Type)
-> GHC.Types.Type)
-> GHC.Types.Type))
= forall arg. KindOf (Apply (BarSym1 l) arg) ~ KindOf (BarSym2 l arg) =>
BarSym1KindInference
type instance Apply (BarSym1 l) l = BarSym2 l l
instance SuppressUnusedWarnings BarSym0 where
suppressUnusedWarnings _
= snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.())
data BarSym0 (l :: TyFun Bar (TyFun Bar (TyFun Bar (TyFun Bar (TyFun Foo Bar
-> GHC.Types.Type)
-> GHC.Types.Type)
-> GHC.Types.Type)
-> GHC.Types.Type))
= forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) =>
BarSym0KindInference
type instance Apply BarSym0 l = BarSym1 l