packages feed

singletons-1.0: tests/compile-and-dump/Promote/Constructors.ghc76.template

Promote/Constructors.hs:0:0: Splicing declarations
    promote
      [d| data Foo = Foo | Foo :+ Foo
          data Bar = Bar Bar Bar Bar Bar Foo |]
  ======>
    Promote/Constructors.hs:(0,0)-(0,0)
    data Foo = Foo | Foo :+ Foo
    data Bar = Bar Bar Bar Bar Bar Foo
    type FooTyCtor = Foo
    type FooTyCtorSym0 = FooTyCtor
    type FooSym0 = Foo
    data (:+$$) (l :: Foo) (l :: TyFun Foo Foo)
    data (:+$) (k :: TyFun Foo (TyFun Foo Foo -> *))
    type instance Apply (:+$$ a) a = :+ a a
    type instance Apply :+$ a = :+$$ a
    type BarTyCtor = Bar
    type BarTyCtorSym0 = BarTyCtor
    data BarSym4 (l :: Bar)
                 (l :: Bar)
                 (l :: Bar)
                 (l :: Bar)
                 (l :: TyFun Foo Bar)
    data BarSym3 (l :: Bar)
                 (l :: Bar)
                 (l :: Bar)
                 (l :: TyFun Bar (TyFun Foo Bar -> *))
    data BarSym2 (l :: Bar)
                 (l :: Bar)
                 (l :: TyFun Bar (TyFun Bar (TyFun Foo Bar -> *) -> *))
    data BarSym1 (l :: Bar)
                 (l :: TyFun Bar (TyFun Bar (TyFun Bar (TyFun Foo Bar -> *) -> *)
                                  -> *))
    data BarSym0 (k :: TyFun Bar (TyFun Bar (TyFun Bar (TyFun Bar (TyFun Foo Bar
                                                                   -> *)
                                                        -> *)
                                             -> *)
                                  -> *))
    type instance Apply (BarSym4 a a a a) a = Bar a a a a a
    type instance Apply (BarSym3 a a a) a = BarSym4 a a a a
    type instance Apply (BarSym2 a a) a = BarSym3 a a a
    type instance Apply (BarSym1 a) a = BarSym2 a a
    type instance Apply BarSym0 a = BarSym1 a