File tree Expand file tree Collapse file tree 1 file changed +33
-2
lines changed
Expand file tree Collapse file tree 1 file changed +33
-2
lines changed Original file line number Diff line number Diff line change 1- {-# LANGUAGE BangPatterns #-}
1+ {-# LANGUAGE CPP, BangPatterns #-}
2+
3+ #include "containers.h"
24
35-----------------------------------------------------------------------------
46-- |
3032module Data.IntMap.Merge.Internal where
3133
3234import Prelude hiding (min , max )
33- import Data.Functor.Identity (Identity , runIdentity )
3435
3536import Data.IntMap.Internal
3637
38+ #if MIN_VERSION_base (4,8,0)
39+ import Data.Functor.Identity (Identity , runIdentity )
40+ #else
41+ import Control.Applicative (Applicative (.. ))
42+ #if __GLASGOW_HASKELL__ >= 708
43+ import Data.Coerce
44+ #endif
45+ #endif
46+
47+
48+ #if !MIN_VERSION_base (4,8,0)
49+ -- | The identity type.
50+ newtype Identity a = Identity { runIdentity :: a }
51+
52+ #if __GLASGOW_HASKELL__ >= 708
53+ instance Functor Identity where
54+ fmap = coerce
55+ instance Applicative Identity where
56+ (<*>) = coerce
57+ pure = Identity
58+ #else
59+ instance Functor Identity where
60+ fmap f (Identity a) = Identity (f a)
61+ instance Applicative Identity where
62+ Identity f <*> Identity x = Identity (f x)
63+ pure = Identity
64+ #endif
65+ #endif
66+
67+
3768-- | A tactic for dealing with keys present in one map but not the other in
3869-- 'merge' or 'mergeA'.
3970--
You can’t perform that action at this time.
0 commit comments