singletons-base-3.5.1: tests/compile-and-dump/Singletons/T322.golden
Singletons/T322.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| infixr 2 !
(!) :: Bool -> Bool -> Bool
(!) = (||) |]
======>
(!) :: Bool -> Bool -> Bool
(!) = (||)
infixr 2 !
type (!@#@$) :: (~>) Bool ((~>) Bool Bool)
data (!@#@$) :: (~>) Bool ((~>) Bool Bool)
where
(:!@#@$###) :: SameKind (Apply (!@#@$) arg) ((!@#@$$) arg) =>
(!@#@$) a0123456789876543210
type instance Apply @Bool @((~>) Bool Bool) (!@#@$) a0123456789876543210 = (!@#@$$) a0123456789876543210
instance SuppressUnusedWarnings (!@#@$) where
suppressUnusedWarnings = snd ((,) (:!@#@$###) ())
infixr 2 type !@#@$
type (!@#@$$) :: Bool -> (~>) Bool Bool
data (!@#@$$) (a0123456789876543210 :: Bool) :: (~>) Bool Bool
where
(:!@#@$$###) :: SameKind (Apply ((!@#@$$) a0123456789876543210) arg) ((!@#@$$$) a0123456789876543210 arg) =>
(!@#@$$) a0123456789876543210 a0123456789876543210
type instance Apply @Bool @Bool ((!@#@$$) a0123456789876543210) a0123456789876543210 = (!) a0123456789876543210 a0123456789876543210
instance SuppressUnusedWarnings ((!@#@$$) a0123456789876543210) where
suppressUnusedWarnings = snd ((,) (:!@#@$$###) ())
infixr 2 type !@#@$$
type (!@#@$$$) :: Bool -> Bool -> Bool
type family (!@#@$$$) (a0123456789876543210 :: Bool) (a0123456789876543210 :: Bool) :: Bool where
(!@#@$$$) a0123456789876543210 a0123456789876543210 = (!) a0123456789876543210 a0123456789876543210
infixr 2 type !@#@$$$
type (!) :: Bool -> Bool -> Bool
type family (!) (a :: Bool) (a :: Bool) :: Bool where
(!) a_0123456789876543210 a_0123456789876543210 = Apply (Apply (||@#@$) a_0123456789876543210) a_0123456789876543210
infixr 2 data %!
(%!) ::
(forall (t :: Bool) (t :: Bool).
Sing t -> Sing t -> Sing ((!) t t :: Bool) :: Type)
(%!)
(sA_0123456789876543210 :: Sing a_0123456789876543210)
(sA_0123456789876543210 :: Sing a_0123456789876543210)
= applySing
(applySing (singFun2 @(||@#@$) (%||)) sA_0123456789876543210)
sA_0123456789876543210
instance SingI ((!@#@$) :: (~>) Bool ((~>) Bool Bool)) where
sing = singFun2 @(!@#@$) (%!)
instance SingI d =>
SingI ((!@#@$$) (d :: Bool) :: (~>) Bool Bool) where
sing = singFun1 @((!@#@$$) (d :: Bool)) ((%!) (sing @d))
instance SingI1 ((!@#@$$) :: Bool -> (~>) Bool Bool) where
liftSing (s :: Sing (d :: Bool))
= singFun1 @((!@#@$$) (d :: Bool)) ((%!) s)