singletons-2.6: tests/compile-and-dump/Singletons/OverloadedStrings.ghc88.template
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
type SymIdSym1 (a0123456789876543210 :: Symbol) =
SymId a0123456789876543210
instance SuppressUnusedWarnings SymIdSym0 where
suppressUnusedWarnings = snd (((,) SymIdSym0KindInference) ())
data SymIdSym0 :: (~>) Symbol Symbol
where
SymIdSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply SymIdSym0 arg) (SymIdSym1 arg) =>
SymIdSym0 a0123456789876543210
type instance Apply SymIdSym0 a0123456789876543210 = SymId a0123456789876543210
type family Foo :: Symbol where
Foo = Apply SymIdSym0 (Data.Singletons.Prelude.IsString.FromString "foo")
type family SymId (a :: Symbol) :: Symbol 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