singletons-2.4: tests/compile-and-dump/Promote/Constructors.ghc84.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. SameKind (Apply ((:+@#@$$) l) arg) ((:+@#@$$$) 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. SameKind (Apply (:+@#@$) arg) ((:+@#@$$) 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. SameKind (Apply (BarSym4 l l l l) arg) (BarSym5 l l l l arg) =>
BarSym4KindInference
type instance Apply (BarSym4 l l l l) l = Bar 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. SameKind (Apply (BarSym3 l l l) arg) (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. SameKind (Apply (BarSym2 l l) arg) (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. SameKind (Apply (BarSym1 l) arg) (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. SameKind (Apply BarSym0 arg) (BarSym1 arg) =>
BarSym0KindInference
type instance Apply BarSym0 l = BarSym1 l