singletons-2.3: tests/compile-and-dump/Promote/Constructors.ghc82.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