packages feed

singletons-2.7: 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 = Foo :: Symbol
    type SymIdSym0 :: (~>) Symbol Symbol
    data SymIdSym0 a0123456789876543210
      where
        SymIdSym0KindInference :: SameKind (Apply SymIdSym0 arg) (SymIdSym1 arg) =>
                                  SymIdSym0 a0123456789876543210
    type instance Apply SymIdSym0 a0123456789876543210 = SymIdSym1 a0123456789876543210
    instance SuppressUnusedWarnings SymIdSym0 where
      suppressUnusedWarnings = snd (((,) SymIdSym0KindInference) ())
    type SymIdSym1 (a0123456789876543210 :: Symbol) =
        SymId a0123456789876543210 :: Symbol
    type Foo :: Symbol
    type family Foo where
      Foo = Apply SymIdSym0 (Data.Singletons.Prelude.IsString.FromString "foo")
    type SymId :: Symbol -> Symbol
    type family SymId a where
      SymId x = x
    sFoo :: Sing (FooSym0 :: Symbol)
    sSymId ::
      forall (t :: Symbol). Sing t -> Sing (Apply SymIdSym0 t :: Symbol)
    sFoo
      = (applySing ((singFun1 @SymIdSym0) sSymId))
          (Data.Singletons.Prelude.IsString.sFromString (sing :: Sing "foo"))
    sSymId (sX :: Sing x) = sX
    instance SingI (SymIdSym0 :: (~>) Symbol Symbol) where
      sing = (singFun1 @SymIdSym0) sSymId