module Data.Bijection.Map
( module Data.Bijection.Class
, S.Map
) where
import Control.Applicative ((<$>))
import Control.DeepSeq
import Data.Aeson
import Data.Binary
import Data.Serialize
import Data.Tuple (swap)
import GHC.Generics
import qualified Data.Map.Strict as S
import Data.Bijection.Class
instance (Eq d, Ord d) => DomCod (S.Map d c) where
type Dom (S.Map d c) = d
type Cod (S.Map d c) = c
member h k = S.member k h
lookup h k = S.lookup k h
deleteDC h k = (,S.delete k h) <$> S.lookup k h
insertDC h (d,c) = S.insert d c h
toListDC = S.toList
nullDC = S.null
emptyDC = S.empty
sizeDC = S.size
fromListDC = S.fromList