packages feed

singletons-base-3.0: tests/compile-and-dump/Singletons/T410.golden

Singletons/T410.hs:(0,0)-(0,0): Splicing declarations
    promote
      [d| class Eq a where
            equals :: a -> a -> Bool
          
          instance Eq () where
            equals () () = True |]
  ======>
    class Eq a where
      equals :: a -> a -> Bool
    instance Eq () where
      equals () () = True
    type EqualsSym0 :: forall a. (~>) a ((~>) a Bool)
    data EqualsSym0 :: (~>) a ((~>) a Bool)
      where
        EqualsSym0KindInference :: SameKind (Apply EqualsSym0 arg) (EqualsSym1 arg) =>
                                   EqualsSym0 a0123456789876543210
    type instance Apply EqualsSym0 a0123456789876543210 = EqualsSym1 a0123456789876543210
    instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings EqualsSym0 where
      Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings
        = snd (((,) EqualsSym0KindInference) ())
    type EqualsSym1 :: forall a. a -> (~>) a Bool
    data EqualsSym1 (a0123456789876543210 :: a) :: (~>) a Bool
      where
        EqualsSym1KindInference :: SameKind (Apply (EqualsSym1 a0123456789876543210) arg) (EqualsSym2 a0123456789876543210 arg) =>
                                   EqualsSym1 a0123456789876543210 a0123456789876543210
    type instance Apply (EqualsSym1 a0123456789876543210) a0123456789876543210 = Equals a0123456789876543210 a0123456789876543210
    instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings (EqualsSym1 a0123456789876543210) where
      Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings
        = snd (((,) EqualsSym1KindInference) ())
    type EqualsSym2 :: forall a. a -> a -> Bool
    type family EqualsSym2 (a0123456789876543210 :: a) (a0123456789876543210 :: a) :: Bool where
      EqualsSym2 a0123456789876543210 a0123456789876543210 = Equals a0123456789876543210 a0123456789876543210
    class PEq a where
      type Equals (arg :: a) (arg :: a) :: Bool
    type Equals_0123456789876543210 :: () -> () -> Bool
    type family Equals_0123456789876543210 (a :: ()) (a :: ()) :: Bool where
      Equals_0123456789876543210 '() '() = TrueSym0
    type Equals_0123456789876543210Sym0 :: (~>) () ((~>) () Bool)
    data Equals_0123456789876543210Sym0 :: (~>) () ((~>) () Bool)
      where
        Equals_0123456789876543210Sym0KindInference :: SameKind (Apply Equals_0123456789876543210Sym0 arg) (Equals_0123456789876543210Sym1 arg) =>
                                                       Equals_0123456789876543210Sym0 a0123456789876543210
    type instance Apply Equals_0123456789876543210Sym0 a0123456789876543210 = Equals_0123456789876543210Sym1 a0123456789876543210
    instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings Equals_0123456789876543210Sym0 where
      Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings
        = snd (((,) Equals_0123456789876543210Sym0KindInference) ())
    type Equals_0123456789876543210Sym1 :: () -> (~>) () Bool
    data Equals_0123456789876543210Sym1 (a0123456789876543210 :: ()) :: (~>) () Bool
      where
        Equals_0123456789876543210Sym1KindInference :: SameKind (Apply (Equals_0123456789876543210Sym1 a0123456789876543210) arg) (Equals_0123456789876543210Sym2 a0123456789876543210 arg) =>
                                                       Equals_0123456789876543210Sym1 a0123456789876543210 a0123456789876543210
    type instance Apply (Equals_0123456789876543210Sym1 a0123456789876543210) a0123456789876543210 = Equals_0123456789876543210 a0123456789876543210 a0123456789876543210
    instance Data.Singletons.TH.SuppressUnusedWarnings.SuppressUnusedWarnings (Equals_0123456789876543210Sym1 a0123456789876543210) where
      Data.Singletons.TH.SuppressUnusedWarnings.suppressUnusedWarnings
        = snd (((,) Equals_0123456789876543210Sym1KindInference) ())
    type Equals_0123456789876543210Sym2 :: () -> () -> Bool
    type family Equals_0123456789876543210Sym2 (a0123456789876543210 :: ()) (a0123456789876543210 :: ()) :: Bool where
      Equals_0123456789876543210Sym2 a0123456789876543210 a0123456789876543210 = Equals_0123456789876543210 a0123456789876543210 a0123456789876543210
    instance PEq () where
      type Equals a a = Apply (Apply Equals_0123456789876543210Sym0 a) a