packages feed

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