packages feed

singletons-2.5: tests/compile-and-dump/Singletons/T353.ghc86.template

Singletons/T353.hs:(0,0)-(0,0): Splicing declarations
    singletons
      [d| type family Symmetry (a :: Proxy t) (y :: Proxy t) (e :: (a :: Proxy (t :: k))
                                                                   :~:
                                                                   (y :: Proxy (t :: k))) :: Type where
            Symmetry a y _ = y :~: a |]
  ======>
    type family Symmetry (a :: Proxy t) (y :: Proxy t) (e :: (:~:) (a :: Proxy (t :: k)) (y :: Proxy (t :: k))) :: Type where
      Symmetry a y _ = (:~:) y a
    type SymmetrySym3 (a0123456789876543210 :: Proxy t0123456789876543210) (y0123456789876543210 :: Proxy t0123456789876543210) (e0123456789876543210 :: (:~:) (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) (y0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210))) =
        Symmetry a0123456789876543210 y0123456789876543210 e0123456789876543210
    instance SuppressUnusedWarnings (SymmetrySym2 y0123456789876543210 a0123456789876543210) where
      suppressUnusedWarnings = snd (((,) SymmetrySym2KindInference) ())
    data SymmetrySym2 (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) (y0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) :: (~>) ((:~:) (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) (y0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210))) Type
      where
        SymmetrySym2KindInference :: forall a0123456789876543210
                                            y0123456789876543210
                                            e0123456789876543210
                                            arg. SameKind (Apply (SymmetrySym2 a0123456789876543210 y0123456789876543210) arg) (SymmetrySym3 a0123456789876543210 y0123456789876543210 arg) =>
                                     SymmetrySym2 a0123456789876543210 y0123456789876543210 e0123456789876543210
    type instance Apply (SymmetrySym2 y0123456789876543210 a0123456789876543210) e0123456789876543210 = Symmetry y0123456789876543210 a0123456789876543210 e0123456789876543210
    instance SuppressUnusedWarnings (SymmetrySym1 a0123456789876543210) where
      suppressUnusedWarnings = snd (((,) SymmetrySym1KindInference) ())
    data SymmetrySym1 (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) :: forall (y0123456789876543210 :: Proxy t0123456789876543210).
                                                                                                        (~>) (Proxy t0123456789876543210) ((~>) ((:~:) (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) (y0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210))) Type)
      where
        SymmetrySym1KindInference :: forall a0123456789876543210
                                            y0123456789876543210
                                            arg. SameKind (Apply (SymmetrySym1 a0123456789876543210) arg) (SymmetrySym2 a0123456789876543210 arg) =>
                                     SymmetrySym1 a0123456789876543210 y0123456789876543210
    type instance Apply (SymmetrySym1 a0123456789876543210) y0123456789876543210 = SymmetrySym2 a0123456789876543210 y0123456789876543210
    instance SuppressUnusedWarnings SymmetrySym0 where
      suppressUnusedWarnings = snd (((,) SymmetrySym0KindInference) ())
    data SymmetrySym0 :: forall k0123456789876543210
                                (t0123456789876543210 :: k0123456789876543210)
                                (a0123456789876543210 :: Proxy t0123456789876543210)
                                (y0123456789876543210 :: Proxy t0123456789876543210).
                         (~>) (Proxy t0123456789876543210) ((~>) (Proxy t0123456789876543210) ((~>) ((:~:) (a0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210)) (y0123456789876543210 :: Proxy (t0123456789876543210 :: k0123456789876543210))) Type))
      where
        SymmetrySym0KindInference :: forall a0123456789876543210
                                            arg. SameKind (Apply SymmetrySym0 arg) (SymmetrySym1 arg) =>
                                     SymmetrySym0 a0123456789876543210
    type instance Apply SymmetrySym0 a0123456789876543210 = SymmetrySym1 a0123456789876543210
Singletons/T353.hs:0:0:: Splicing declarations
    genDefunSymbols [''Prod]
  ======>
    type MkProdSym2 (t0123456789876543210 :: f0123456789876543210 p0123456789876543210) (t0123456789876543210 :: g0123456789876543210 p0123456789876543210) =
         'MkProd t0123456789876543210 t0123456789876543210
    instance SuppressUnusedWarnings (MkProdSym1 t0123456789876543210) where
      suppressUnusedWarnings = snd (((,) MkProdSym1KindInference) ())
    data MkProdSym1 (t0123456789876543210 :: (f0123456789876543210 :: k0123456789876543210
                                                                      -> Type) (p0123456789876543210 :: k0123456789876543210)) :: forall (g0123456789876543210 :: k0123456789876543210
                                                                                                                                                                  -> Type).
                                                                                                                                  (~>) (g0123456789876543210 p0123456789876543210) (Prod (f0123456789876543210 :: k0123456789876543210
                                                                                                                                                                                                                  -> Type) (g0123456789876543210 :: k0123456789876543210
                                                                                                                                                                                                                                                    -> Type) (p0123456789876543210 :: k0123456789876543210))
      where
        MkProdSym1KindInference :: forall t0123456789876543210
                                          t0123456789876543210
                                          arg. SameKind (Apply (MkProdSym1 t0123456789876543210) arg) (MkProdSym2 t0123456789876543210 arg) =>
                                   MkProdSym1 t0123456789876543210 t0123456789876543210
    type instance Apply (MkProdSym1 t0123456789876543210) t0123456789876543210 =  'MkProd t0123456789876543210 t0123456789876543210
    instance SuppressUnusedWarnings MkProdSym0 where
      suppressUnusedWarnings = snd (((,) MkProdSym0KindInference) ())
    data MkProdSym0 :: forall k0123456789876543210
                              (f0123456789876543210 :: k0123456789876543210 -> Type)
                              (g0123456789876543210 :: k0123456789876543210 -> Type)
                              (p0123456789876543210 :: k0123456789876543210).
                       (~>) (f0123456789876543210 p0123456789876543210) ((~>) (g0123456789876543210 p0123456789876543210) (Prod (f0123456789876543210 :: k0123456789876543210
                                                                                                                                                         -> Type) (g0123456789876543210 :: k0123456789876543210
                                                                                                                                                                                           -> Type) (p0123456789876543210 :: k0123456789876543210)))
      where
        MkProdSym0KindInference :: forall t0123456789876543210
                                          arg. SameKind (Apply MkProdSym0 arg) (MkProdSym1 arg) =>
                                   MkProdSym0 t0123456789876543210
    type instance Apply MkProdSym0 t0123456789876543210 = MkProdSym1 t0123456789876543210
Singletons/T353.hs:0:0:: Splicing declarations
    genDefunSymbols [''Foo]
  ======>
    type MkFooSym2 (t0123456789876543210 :: Proxy a0123456789876543210) (t0123456789876543210 :: Proxy b0123456789876543210) =
         'MkFoo t0123456789876543210 t0123456789876543210
    instance SuppressUnusedWarnings (MkFooSym1 t0123456789876543210) where
      suppressUnusedWarnings = snd (((,) MkFooSym1KindInference) ())
    data MkFooSym1 (t0123456789876543210 :: Proxy (a0123456789876543210 :: k0123456789876543210)) :: forall k0123456789876543210
                                                                                                            (b0123456789876543210 :: k0123456789876543210).
                                                                                                     (~>) (Proxy b0123456789876543210) (Foo (a0123456789876543210 :: k0123456789876543210) (b0123456789876543210 :: k0123456789876543210))
      where
        MkFooSym1KindInference :: forall t0123456789876543210
                                         t0123456789876543210
                                         arg. SameKind (Apply (MkFooSym1 t0123456789876543210) arg) (MkFooSym2 t0123456789876543210 arg) =>
                                  MkFooSym1 t0123456789876543210 t0123456789876543210
    type instance Apply (MkFooSym1 t0123456789876543210) t0123456789876543210 =  'MkFoo t0123456789876543210 t0123456789876543210
    instance SuppressUnusedWarnings MkFooSym0 where
      suppressUnusedWarnings = snd (((,) MkFooSym0KindInference) ())
    data MkFooSym0 :: forall k0123456789876543210
                             (a0123456789876543210 :: k0123456789876543210)
                             k0123456789876543210
                             (b0123456789876543210 :: k0123456789876543210).
                      (~>) (Proxy a0123456789876543210) ((~>) (Proxy b0123456789876543210) (Foo (a0123456789876543210 :: k0123456789876543210) (b0123456789876543210 :: k0123456789876543210)))
      where
        MkFooSym0KindInference :: forall t0123456789876543210
                                         arg. SameKind (Apply MkFooSym0 arg) (MkFooSym1 arg) =>
                                  MkFooSym0 t0123456789876543210
    type instance Apply MkFooSym0 t0123456789876543210 = MkFooSym1 t0123456789876543210