@@ -48,9 +48,6 @@ instance DecidablyEmpty [a] where
48 isEmpty = null
48 isEmpty = null
49instance Semigroup a => DecidablyEmpty (Maybe a) where
49instance Semigroup a => DecidablyEmpty (Maybe a) where
50 isEmpty = isNothing
50 isEmpty = isNothing
51−#if MIN_VERSION_base(4,11,0)
52−deriving instance DecidablyEmpty a => DecidablyEmpty (Down a)
54deriving instance (Num a, DecidablyEmpty a) => DecidablyEmpty (Product a)
51deriving instance (Num a, DecidablyEmpty a) => DecidablyEmpty (Product a)
55deriving instance (DecidablyEmpty a, Num a) => DecidablyEmpty (Sum a)
52deriving instance (DecidablyEmpty a, Num a) => DecidablyEmpty (Sum a)
56deriving instance DecidablyEmpty a => DecidablyEmpty (Dual a)
53deriving instance DecidablyEmpty a => DecidablyEmpty (Dual a)
@@ -61,17 +58,19 @@ deriving instance Semigroup a => DecidablyEmpty (Option a)
61deriving instance DecidablyEmpty m => DecidablyEmpty (WrappedMonoid m)
58deriving instance DecidablyEmpty m => DecidablyEmpty (WrappedMonoid m)
62instance (Ord a, Bounded a) => DecidablyEmpty (Max a)
59instance (Ord a, Bounded a) => DecidablyEmpty (Max a)
63instance (Ord a, Bounded a) => DecidablyEmpty (Min a)
60instance (Ord a, Bounded a) => DecidablyEmpty (Min a)
64−instance DecidablyEmpty (U1 p)
65instance DecidablyEmpty (Proxy s)
61instance DecidablyEmpty (Proxy s)
62+deriving instance DecidablyEmpty a => DecidablyEmpty (Const a b)
63+#if MIN_VERSION_base(4,11,0)
64+deriving instance DecidablyEmpty a => DecidablyEmpty (Down a)
66#if MIN_VERSION_base(4,12,0)
66#if MIN_VERSION_base(4,12,0)
67+deriving instance DecidablyEmpty p => DecidablyEmpty (Par1 p)
68+instance DecidablyEmpty (U1 p)
67deriving instance DecidablyEmpty (f p) => DecidablyEmpty (Rec1 f p)
69deriving instance DecidablyEmpty (f p) => DecidablyEmpty (Rec1 f p)
69−deriving instance DecidablyEmpty a => DecidablyEmpty (Const a b)
70+deriving instance DecidablyEmpty (f p) => DecidablyEmpty (M1 i c f p)
70deriving instance DecidablyEmpty c => DecidablyEmpty (K1 i c p)
71deriving instance DecidablyEmpty c => DecidablyEmpty (K1 i c p)
71instance (DecidablyEmpty (f p), DecidablyEmpty (g p)) => DecidablyEmpty ((f :*: g) p) where
72instance (DecidablyEmpty (f p), DecidablyEmpty (g p)) => DecidablyEmpty ((f :*: g) p) where
72 isEmpty (x :*: y) = isEmpty x && isEmpty y
73 isEmpty (x :*: y) = isEmpty x && isEmpty y
73−#if MIN_VERSION_base(4,12,0)
74−deriving instance DecidablyEmpty (f p) => DecidablyEmpty (M1 i c f p)
75deriving instance DecidablyEmpty (f (g p)) => DecidablyEmpty ((f :.: g) p)
74deriving instance DecidablyEmpty (f (g p)) => DecidablyEmpty ((f :.: g) p)