singletons-2.5: tests/compile-and-dump/Singletons/Undef.ghc86.template
Singletons/Undef.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| foo :: Bool -> Bool
foo = undefined
bar :: Bool -> Bool
bar = error "urk" |]
======>
foo :: Bool -> Bool
foo = undefined
bar :: Bool -> Bool
bar = error "urk"
type BarSym1 (a0123456789876543210 :: Bool) =
Bar a0123456789876543210
instance SuppressUnusedWarnings BarSym0 where
suppressUnusedWarnings = snd (((,) BarSym0KindInference) ())
data BarSym0 :: (~>) Bool Bool
where
BarSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply BarSym0 arg) (BarSym1 arg) =>
BarSym0 a0123456789876543210
type instance Apply BarSym0 a0123456789876543210 = Bar a0123456789876543210
type FooSym1 (a0123456789876543210 :: Bool) =
Foo a0123456789876543210
instance SuppressUnusedWarnings FooSym0 where
suppressUnusedWarnings = snd (((,) FooSym0KindInference) ())
data FooSym0 :: (~>) Bool Bool
where
FooSym0KindInference :: forall a0123456789876543210
arg. SameKind (Apply FooSym0 arg) (FooSym1 arg) =>
FooSym0 a0123456789876543210
type instance Apply FooSym0 a0123456789876543210 = Foo a0123456789876543210
type family Bar (a :: Bool) :: Bool where
Bar a_0123456789876543210 = Apply (Apply ErrorSym0 "urk") a_0123456789876543210
type family Foo (a :: Bool) :: Bool where
Foo a_0123456789876543210 = Apply UndefinedSym0 a_0123456789876543210
sBar ::
forall (t :: Bool). Sing t -> Sing (Apply BarSym0 t :: Bool)
sFoo ::
forall (t :: Bool). Sing t -> Sing (Apply FooSym0 t :: Bool)
sBar (sA_0123456789876543210 :: Sing a_0123456789876543210)
= (sError (sing :: Sing "urk")) sA_0123456789876543210
sFoo (sA_0123456789876543210 :: Sing a_0123456789876543210)
= sUndefined sA_0123456789876543210
instance SingI (BarSym0 :: (~>) Bool Bool) where
sing = (singFun1 @BarSym0) sBar
instance SingI (FooSym0 :: (~>) Bool Bool) where
sing = (singFun1 @FooSym0) sFoo