packages feed

singletons-2.2: tests/compile-and-dump/Promote/Newtypes.ghc80.template

Promote/Newtypes.hs:(0,0)-(0,0): Splicing declarations
    promote
      [d| newtype Foo
            = Foo Nat
            deriving (Eq)
          newtype Bar = Bar {unBar :: Nat} |]
  ======>
    newtype Foo
      = Foo Nat
      deriving (Eq)
    newtype Bar = Bar {unBar :: Nat}
    type UnBarSym1 (t :: Bar) = UnBar t
    instance SuppressUnusedWarnings UnBarSym0 where
      suppressUnusedWarnings _
        = snd (GHC.Tuple.(,) UnBarSym0KindInference GHC.Tuple.())
    data UnBarSym0 (l :: TyFun Bar Nat)
      = forall arg. KindOf (Apply UnBarSym0 arg) ~ KindOf (UnBarSym1 arg) =>
        UnBarSym0KindInference
    type instance Apply UnBarSym0 l = UnBarSym1 l
    type family UnBar (a :: Bar) :: Nat where
      UnBar (Bar field) = field
    type family Equals_0123456789 (a :: Foo) (b :: Foo) :: Bool where
      Equals_0123456789 (Foo a) (Foo b) = (:==) a b
      Equals_0123456789 (a :: Foo) (b :: Foo) = FalseSym0
    instance PEq (Proxy :: Proxy Foo) where
      type (:==) (a :: Foo) (b :: Foo) = Equals_0123456789 a b
    type FooSym1 (t :: Nat) = Foo t
    instance SuppressUnusedWarnings FooSym0 where
      suppressUnusedWarnings _
        = snd (GHC.Tuple.(,) FooSym0KindInference GHC.Tuple.())
    data FooSym0 (l :: TyFun Nat Foo)
      = forall arg. KindOf (Apply FooSym0 arg) ~ KindOf (FooSym1 arg) =>
        FooSym0KindInference
    type instance Apply FooSym0 l = FooSym1 l
    type BarSym1 (t :: Nat) = Bar t
    instance SuppressUnusedWarnings BarSym0 where
      suppressUnusedWarnings _
        = snd (GHC.Tuple.(,) BarSym0KindInference GHC.Tuple.())
    data BarSym0 (l :: TyFun Nat Bar)
      = forall arg. KindOf (Apply BarSym0 arg) ~ KindOf (BarSym1 arg) =>
        BarSym0KindInference
    type instance Apply BarSym0 l = BarSym1 l