packages feed

singletons-2.6: tests/compile-and-dump/Promote/Newtypes.ghc88.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 family Equals_0123456789876543210 (a :: Foo) (b :: Foo) :: Bool where
      Equals_0123456789876543210 (Foo a) (Foo b) = (==) a b
      Equals_0123456789876543210 (_ :: Foo) (_ :: Foo) = FalseSym0
    instance PEq Foo where
      type (==) a b = Equals_0123456789876543210 a b
    type UnBarSym1 (a0123456789876543210 :: Bar) =
        UnBar a0123456789876543210
    instance SuppressUnusedWarnings UnBarSym0 where
      suppressUnusedWarnings = snd (((,) UnBarSym0KindInference) ())
    data UnBarSym0 :: (~>) Bar Nat
      where
        UnBarSym0KindInference :: forall a0123456789876543210
                                         arg. SameKind (Apply UnBarSym0 arg) (UnBarSym1 arg) =>
                                  UnBarSym0 a0123456789876543210
    type instance Apply UnBarSym0 a0123456789876543210 = UnBar a0123456789876543210
    type family UnBar (a :: Bar) :: Nat where
      UnBar (Bar field) = field
    type FooSym1 (t0123456789876543210 :: Nat) =
        Foo t0123456789876543210
    instance SuppressUnusedWarnings FooSym0 where
      suppressUnusedWarnings = snd (((,) FooSym0KindInference) ())
    data FooSym0 :: (~>) Nat Foo
      where
        FooSym0KindInference :: forall t0123456789876543210
                                       arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) =>
                                FooSym0 t0123456789876543210
    type instance Apply FooSym0 t0123456789876543210 = Foo t0123456789876543210
    type BarSym1 (t0123456789876543210 :: Nat) =
        Bar t0123456789876543210
    instance SuppressUnusedWarnings BarSym0 where
      suppressUnusedWarnings = snd (((,) BarSym0KindInference) ())
    data BarSym0 :: (~>) Nat Bar
      where
        BarSym0KindInference :: forall t0123456789876543210
                                       arg. SameKind (Apply BarSym0 arg) (BarSym1 arg) =>
                                BarSym0 t0123456789876543210
    type instance Apply BarSym0 t0123456789876543210 = Bar t0123456789876543210