singletons-base-3.5.1: tests/compile-and-dump/Singletons/EqInstances.golden
Singletons/EqInstances.hs:0:0:: Splicing declarations
singEqInstances [''Foo, ''Empty]
======>
type TFHelper_0123456789876543210 :: Foo -> Foo -> Bool
type family TFHelper_0123456789876543210 (a :: Foo) (a :: Foo) :: Bool where
TFHelper_0123456789876543210 'FLeaf 'FLeaf = TrueSym0
TFHelper_0123456789876543210 'FLeaf ('(:+:) _ _) = FalseSym0
TFHelper_0123456789876543210 ('(:+:) _ _) 'FLeaf = FalseSym0
TFHelper_0123456789876543210 ('(:+:) a_0123456789876543210 a_0123456789876543210) ('(:+:) b_0123456789876543210 b_0123456789876543210) = Apply (Apply (&&@#@$) (Apply (Apply (==@#@$) a_0123456789876543210) b_0123456789876543210)) (Apply (Apply (==@#@$) a_0123456789876543210) b_0123456789876543210)
instance PEq Foo where
type (==) a a = TFHelper_0123456789876543210 a a
instance SEq Foo => SEq Foo where
(%==) SFLeaf SFLeaf = STrue
(%==) SFLeaf ((:%+:) _ _) = SFalse
(%==) ((:%+:) _ _) SFLeaf = SFalse
(%==)
((:%+:) (sA_0123456789876543210 :: Sing a_0123456789876543210)
(sA_0123456789876543210 :: Sing a_0123456789876543210))
((:%+:) (sB_0123456789876543210 :: Sing b_0123456789876543210)
(sB_0123456789876543210 :: Sing b_0123456789876543210))
= applySing
(applySing
(singFun2 @(&&@#@$) (%&&))
(applySing
(applySing (singFun2 @(==@#@$) (%==)) sA_0123456789876543210)
sB_0123456789876543210))
(applySing
(applySing (singFun2 @(==@#@$) (%==)) sA_0123456789876543210)
sB_0123456789876543210)
type TFHelper_0123456789876543210 :: Empty -> Empty -> Bool
type family TFHelper_0123456789876543210 (a :: Empty) (a :: Empty) :: Bool where
TFHelper_0123456789876543210 _ _ = TrueSym0
instance PEq Empty where
type (==) a a = TFHelper_0123456789876543210 a a
instance SEq Empty where
(%==) _ _ = STrue