packages feed

singletons-1.0: tests/compile-and-dump/Singletons/EqInstances.ghc76.template

Singletons/EqInstances.hs:0:0: Splicing declarations
    singEqInstances [''Foo, ''Empty]
  ======>
    Singletons/EqInstances.hs:0:0:
    instance SEq (KProxy :: KProxy Foo) where
      %:== SFLeaf SFLeaf = STrue
      %:== SFLeaf (:%+: _ _) = SFalse
      %:== (:%+: _ _) SFLeaf = SFalse
      %:== (:%+: a a) (:%+: b b) = (%:&&) ((%:==) a b) ((%:==) a b)
    type instance (:==) FLeaf FLeaf = TrueSym0
    type instance (:==) FLeaf (:+: b b) = FalseSym0
    type instance (:==) (:+: a a) FLeaf = FalseSym0
    type instance (:==) (:+: a a) (:+: b b) = :&& (:== a b) (:== a b)
    instance SEq (KProxy :: KProxy Empty) where
      %:== a _
        = case a of {
            _ -> error "Empty case reached -- this should be impossible" }