packages feed

singletons-base-3.0: 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 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 (FooSym0 :: Symbol)
    sSymId ::
      forall (t :: Symbol). Sing t -> Sing (Apply SymIdSym0 t :: Symbol)
    sFoo
      = (applySing ((singFun1 @SymIdSym0) sSymId))
          (sFromString (sing :: Sing "foo"))
    sSymId (sX :: Sing x) = sX
    instance SingI (SymIdSym0 :: (~>) Symbol Symbol) where
      sing = (singFun1 @SymIdSym0) sSymId