singletons-2.4: tests/compile-and-dump/Singletons/OverloadedStrings.ghc84.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 SymIdSym1 (t :: Symbol) = SymId t
instance SuppressUnusedWarnings SymIdSym0 where
suppressUnusedWarnings
= snd ((GHC.Tuple.(,) SymIdSym0KindInference) GHC.Tuple.())
data SymIdSym0 (l :: TyFun Symbol Symbol)
= forall arg. SameKind (Apply SymIdSym0 arg) (SymIdSym1 arg) =>
SymIdSym0KindInference
type instance Apply SymIdSym0 l = SymId l
type FooSym0 = Foo
type family SymId (a :: Symbol) :: Symbol where
SymId x = x
type family Foo :: Symbol where
Foo = Apply SymIdSym0 (Data.Singletons.Prelude.IsString.FromString "foo")
sSymId ::
forall (t :: Symbol). Sing t -> Sing (Apply SymIdSym0 t :: Symbol)
sFoo :: Sing (FooSym0 :: Symbol)
sSymId (sX :: Sing x) = sX
sFoo
= (applySing ((singFun1 @SymIdSym0) sSymId))
(Data.Singletons.Prelude.IsString.sFromString (sing :: Sing "foo"))