@@ -41,9 +41,13 @@ import Data.Foldable (Foldable, foldl', foldMap)
4141import Data.Function (on)
4242import Data.Map (Map)
4343import Data.Map.Util
44−import Data.Monoid
44+import Data.Monoid (Monoid(..))
4545#if MIN_VERSION_base(4,9,0)
46−import Data.Semigroup
46+import Data.Semigroup (Semigroup(..))
47+#endif
48+#if !(MIN_VERSION_base(4,8,0))
49+import Control.Applicative ((<$>))
50+import Data.Traversable
4751#endif
4852import Prelude hiding (filter, lookup, null)
4953import qualified Data.Map as M
@@ -67,7 +71,8 @@ instance (Data k, Data a, Ord k) => Data (OMap k a) where
6771 1 -> k (z fromList)
6872 _ -> error "gunfold"
6973 dataTypeOf _ = oMapDataType
70− dataCast2 = gcast2
74+ -- dataCast2 /must/ be eta-expanded in order to build on GHC 7.8.
75+ dataCast2 f = gcast2 f
7176
7277fromListConstr :: Constr
7378fromListConstr = mkConstr oMapDataType "fromList" [] Prefix