@@ -29,3 +29,9 @@ Enum a => Enum (Identity a) where
29 toNat (Id x) = toNat x
29 toNat (Id x) = toNat x
30 fromNat n = Id $ fromNat n
30 fromNat n = Id $ fromNat n
31 pred (Id n) = Id $ pred n
31 pred (Id n) = Id $ pred n
33+(Semigroup a) => Semigroup (Identity a) where
34+ (<+>) x y = Id (runIdentity x <+> runIdentity y)
36+(Monoid a) => Monoid (Identity a) where
37+ neutral = Id (neutral)