packages feed

singletons-2.0: tests/compile-and-dump/Promote/Constructors.ghc710.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 -> *))
      = 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 -> *))
      = 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 -> *) -> *))
      = 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 -> *) -> *)
                                  -> *))
      = 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
                                                                   -> *)
                                                        -> *)
                                             -> *)
                                  -> *))
      = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) =>
        BarSym0KindInference
    type instance Apply BarSym0 l = BarSym1 l