@@ -76,7 +76,7 @@ import Data.Monoid
7676import Data.Function (on)
7777import GHC.Generics
7878
79−import Control.Newtype.Generics
79+import Control.Newtype
8080
8181import Data.Void (Void)
8282
@@ -315,16 +315,6 @@ if' _ e True = e
315315 BoolTrie f t
316316-}
317317
318−instance HasTrie a => HasTrie (Maybe a) where
319− data (:->:) (Maybe a) b = MaybeTrie b (a :->: b)
320− trie f = MaybeTrie (f Nothing) (trie (f . Just))
321− untrie (MaybeTrie nothing_val a_trie) = maybe nothing_val (untrie a_trie)
322− enumerate (MaybeTrie nothing_val a_trie) = (Nothing, nothing_val) : enum' Just a_trie
323−
324−instance Newtype (Maybe a :->: x) where
325− type O (Maybe a :->: x) = (x, a :->: x)
326− pack (a,f) = MaybeTrie a f
327− unpack (MaybeTrie a f) = (a,f)
328318
329319instance (HasTrie a, HasTrie b) => HasTrie (Either a b) where
330320 data (Either a b) :->: x = EitherTrie (a :->: x) (b :->: x)
@@ -587,12 +577,7 @@ instance HasTrie a => Monad ((:->:) a) where
587577
588578instance (HasTrie a, Monoid b) => Monoid (a :->: b) where
589579 mempty = trie mempty
590−#if !MIN_VERSION_base(4,11,0)
591580 mappend = inTrie2 mappend
592−#else
593−instance (HasTrie a, Semigroup b) => Semigroup (a :->: b) where
594− (<>) = inTrie2 (<>)
595−#endif
596581
597582instance HasTrie a => Functor ((:->:) a) where
598583 fmap f = inTrie (fmap f)