singletons-2.4: tests/compile-and-dump/Singletons/T124.ghc84.template
Singletons/T124.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| foo :: Bool -> ()
foo True = ()
foo False = () |]
======>
foo :: Bool -> ()
foo True = GHC.Tuple.()
foo False = GHC.Tuple.()
type FooSym1 (t :: Bool) = Foo t
instance SuppressUnusedWarnings FooSym0 where
suppressUnusedWarnings
= snd ((GHC.Tuple.(,) FooSym0KindInference) GHC.Tuple.())
data FooSym0 (l :: TyFun Bool ())
= forall arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) =>
FooSym0KindInference
type instance Apply FooSym0 l = Foo l
type family Foo (a :: Bool) :: () where
Foo True = Tuple0Sym0
Foo False = Tuple0Sym0
sFoo :: forall (t :: Bool). Sing t -> Sing (Apply FooSym0 t :: ())
sFoo STrue = STuple0
sFoo SFalse = STuple0
Singletons/T124.hs:0:0:: Splicing expression
sCases ''Bool [| b |] [| STuple0 |]
======>
case b of
SFalse -> STuple0
STrue -> STuple0