packages feed

singletons-base-3.3: tests/compile-and-dump/Singletons/T175.golden

Singletons/T175.hs:(0,0)-(0,0): Splicing declarations
    singletons
      [d| quux2 :: Bar2 a => a
          quux2 = baz
          
          class Foo a where
            baz :: a
          class Foo a => Bar1 a where
            quux1 :: a
            quux1 = baz
          class Foo a => Bar2 a |]
  ======>
    class Foo a where
      baz :: a
    class Foo a => Bar1 a where
      quux1 :: a
      quux1 = baz
    class Foo a => Bar2 a
    quux2 :: Bar2 a => a
    quux2 = baz
    type Quux2Sym0 :: a
    type family Quux2Sym0 :: a where
      Quux2Sym0 = Quux2
    type Quux2 :: a
    type family Quux2 :: a where
      Quux2 = BazSym0
    type BazSym0 :: forall a. a
    type family BazSym0 :: a where
      BazSym0 = Baz
    class PFoo a where
      type family Baz :: a
    type Quux1Sym0 :: forall a. a
    type family Quux1Sym0 :: a where
      Quux1Sym0 = Quux1
    type Quux1_0123456789876543210 :: a
    type family Quux1_0123456789876543210 :: a where
      Quux1_0123456789876543210 = BazSym0
    type Quux1_0123456789876543210Sym0 :: a
    type family Quux1_0123456789876543210Sym0 :: a where
      Quux1_0123456789876543210Sym0 = Quux1_0123456789876543210
    class PBar1 a where
      type family Quux1 :: a
      type Quux1 = Quux1_0123456789876543210Sym0
    class PBar2 a
    sQuux2 :: (SBar2 a => Sing (Quux2Sym0 :: a) :: Type)
    sQuux2 = sBaz
    class SFoo a where
      sBaz :: (Sing (BazSym0 :: a) :: Type)
    class SFoo a => SBar1 a where
      sQuux1 :: (Sing (Quux1Sym0 :: a) :: Type)
      default sQuux1 ::
                (((Quux1Sym0 :: a) ~ Quux1_0123456789876543210Sym0) =>
                 Sing (Quux1Sym0 :: a) :: Type)
      sQuux1 = sBaz
    class SFoo a => SBar2 a