packages feed

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