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