module ClassyPrelude.Map
( Map
) where
import qualified Prelude
import Prelude ((.), Char)
import ClassyPrelude.Classes
import Data.Map (Map)
import qualified Data.Map as Map
instance CanMapFunc (Map k v1) (Map k v2) v1 v2 where
mapFunc = Map.map
instance Prelude.Ord k => CanFilterFunc (Map k v) (Map k v) (k, v) where
filterFunc = Map.filterWithKey . Prelude.curry
instance CanLength (Map k v) Prelude.Int where
length = Map.size
instance (v' ~ v) => CanSingleton (v' -> Map k v) k where
singleton = Map.singleton
instance CanNull (Map k v) where
null = Map.null
instance Prelude.Ord k => CanPack (Map k v) (k, v) where
pack = Map.fromList
unpack = Map.toList
instance Prelude.Ord k => CanLookup (Map k v) k v where
lookup = Map.lookup
instance Prelude.Ord k => CanInsertVal (Map k v) k v where
insertVal = Map.insert
instance Prelude.Ord k => CanDelete (Map k v) k where
delete = Map.delete