singletons-base-3.5: tests/compile-and-dump/Singletons/T187.golden
Singletons/T187.hs:(0,0)-(0,0): Splicing declarations
singletons
[d| data Empty
deriving instance Ord Empty
deriving instance Eq Empty |]
======>
data Empty
deriving instance Eq Empty
deriving instance Ord Empty
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
type Compare_0123456789876543210 :: Empty -> Empty -> Ordering
type family Compare_0123456789876543210 (a :: Empty) (a :: Empty) :: Ordering where
Compare_0123456789876543210 _ _ = EQSym0
instance POrd Empty where
type Compare a a = Compare_0123456789876543210 a a
data SEmpty :: Empty -> Type
type instance Sing @Empty = SEmpty
instance SingKind Empty where
type Demote Empty = Empty
fromSing x = (\case) x
toSing x = SomeSing ((\case) x)
instance SEq Empty where
(%==) _ _ = STrue
instance SOrd Empty where
sCompare _ _ = SEQ
instance SDecide Empty where
(%~) x _ = Proved ((\case) x)
instance Eq (SEmpty (z :: Empty)) where
(==) _ _ = True
instance GHC.Internal.Data.Type.Equality.TestEquality (SEmpty :: Empty
-> Type) where
GHC.Internal.Data.Type.Equality.testEquality
= Data.Singletons.Decide.decideEquality
instance GHC.Internal.Data.Type.Coercion.TestCoercion (SEmpty :: Empty
-> Type) where
GHC.Internal.Data.Type.Coercion.testCoercion
= Data.Singletons.Decide.decideCoercion
instance Ord (SEmpty (z :: Empty)) where
compare _ _ = EQ