packages feed

singletons-base-3.5: tests/compile-and-dump/Singletons/OverloadedStrings.golden

Singletons/OverloadedStrings.hs:(0,0)-(0,0): Splicing declarations
    singletons
      [d| symId :: Symbol -> Symbol
          symId x = x
          foo :: Symbol
          foo = symId "foo" |]
  ======>
    symId :: Symbol -> Symbol
    symId x = x
    foo :: Symbol
    foo = symId "foo"
    type FooSym0 :: Symbol
    type family FooSym0 :: Symbol where
      FooSym0 = Foo
    type SymIdSym0 :: (~>) Symbol Symbol
    data SymIdSym0 :: (~>) Symbol Symbol
      where
        SymIdSym0KindInference :: SameKind (Apply SymIdSym0 arg) (SymIdSym1 arg) =>
                                  SymIdSym0 a0123456789876543210
    type instance Apply @Symbol @Symbol SymIdSym0 a0123456789876543210 = SymId a0123456789876543210
    instance SuppressUnusedWarnings SymIdSym0 where
      suppressUnusedWarnings = snd ((,) SymIdSym0KindInference ())
    type SymIdSym1 :: Symbol -> Symbol
    type family SymIdSym1 (a0123456789876543210 :: Symbol) :: Symbol where
      SymIdSym1 a0123456789876543210 = SymId a0123456789876543210
    type Foo :: Symbol
    type family Foo :: Symbol where
      Foo = Apply SymIdSym0 (FromString "foo")
    type SymId :: Symbol -> Symbol
    type family SymId (a :: Symbol) :: Symbol where
      SymId x = x
    sFoo :: (Sing (Foo :: Symbol) :: Type)
    sSymId ::
      (forall (t :: Symbol). Sing t -> Sing (SymId t :: Symbol) :: Type)
    sFoo
      = applySing
          (singFun1 @SymIdSym0 sSymId) (sFromString (sing :: Sing "foo"))
    sSymId (sX :: Sing x) = sX
    instance SingI (SymIdSym0 :: (~>) Symbol Symbol) where
      sing = singFun1 @SymIdSym0 sSymId