Module Bimap

Summary of exported operations:

fmA :: BM a b -> FM a b   
fmB :: BM a b -> FM b a   
emptyBM :: (a -> a -> Bool) -> (b -> b -> Bool) -> BM a b   
unitBM :: (a -> a -> Bool) -> (b -> b -> Bool) -> a -> b -> BM a b   
listToBM :: (Eq a, Eq b) => (a -> a -> Bool) -> (b -> b -> Bool) -> [(a,b)] -> BM a b   
addToBM :: (Eq a, Eq b) => a -> b -> BM a b -> BM a b   
addListToBM :: (Eq a, Eq b) => [(a,b)] -> BM a b -> BM a b   
delFromBM :: (Eq a, Eq b) => a -> BM a b -> BM a b   
delFromBMR :: (Eq a, Eq b) => a -> BM b a -> BM b a   
deleteBd :: (Eq a, Eq b) => a -> b -> BM a b -> BM a b   
Delete bidirectional
delete :: (Eq a, Eq b) => Either a b -> BM a b -> BM a b   
delListFromBM :: (Eq a, Eq b) => [a] -> BM a b -> BM a b   
delListFromBMR :: (Eq a, Eq b) => [a] -> BM b a -> BM b a   
updBM :: (Eq a, Eq b) => (a -> a) -> b -> BM b a -> BM b a   
updBMR :: (Eq a, Eq b) => (a -> a) -> b -> BM a b -> BM a b   
sizeBM :: BM a b -> Int   
isEmptyBM :: BM a b -> Bool   
elemBM :: (Eq a, Eq b) => a -> BM a b -> Bool   
elemBMR :: (Eq a, Eq b) => a -> BM b a -> Bool   
lookupBM :: (Eq a, Eq b) => a -> BM a b -> Maybe b   
lookupBMR :: (Eq a, Eq b) => a -> BM b a -> Maybe b   
lookupWithDefaultBM :: (Eq a, Eq b) => a -> b -> BM b a -> a   
lookupWithDefaultBMR :: (Eq a, Eq b) => a -> b -> BM a b -> a   
bmToLists :: BM a b -> ([(a,b)],[(b,a)])   
keysBM :: BM a b -> [a]   
eltsBM :: BM a b -> [b]   
ppBM :: ((a,b) -> Doc) -> BM a b -> Doc   
Pretty print bidirectional map

Exported datatypes:


BM

bidirectional map

Constructors:

  • BM :: (FM a b) -> (FM b a) -> BM a b

Exported operations:

fmA :: BM a b -> FM a b   

Further infos:
  • solution complete, i.e., able to compute all solutions

fmB :: BM a b -> FM b a   

Further infos:
  • solution complete, i.e., able to compute all solutions

emptyBM :: (a -> a -> Bool) -> (b -> b -> Bool) -> BM a b   

Further infos:
  • solution complete, i.e., able to compute all solutions

unitBM :: (a -> a -> Bool) -> (b -> b -> Bool) -> a -> b -> BM a b   

Further infos:
  • solution complete, i.e., able to compute all solutions

listToBM :: (Eq a, Eq b) => (a -> a -> Bool) -> (b -> b -> Bool) -> [(a,b)] -> BM a b   

addToBM :: (Eq a, Eq b) => a -> b -> BM a b -> BM a b   

addListToBM :: (Eq a, Eq b) => [(a,b)] -> BM a b -> BM a b   

delFromBM :: (Eq a, Eq b) => a -> BM a b -> BM a b   

delFromBMR :: (Eq a, Eq b) => a -> BM b a -> BM b a   

deleteBd :: (Eq a, Eq b) => a -> b -> BM a b -> BM a b   

Delete bidirectional

delete :: (Eq a, Eq b) => Either a b -> BM a b -> BM a b   

delListFromBM :: (Eq a, Eq b) => [a] -> BM a b -> BM a b   

delListFromBMR :: (Eq a, Eq b) => [a] -> BM b a -> BM b a   

updBM :: (Eq a, Eq b) => (a -> a) -> b -> BM b a -> BM b a   

updBMR :: (Eq a, Eq b) => (a -> a) -> b -> BM a b -> BM a b   

sizeBM :: BM a b -> Int   

Further infos:
  • solution complete, i.e., able to compute all solutions

isEmptyBM :: BM a b -> Bool   

elemBM :: (Eq a, Eq b) => a -> BM a b -> Bool   

elemBMR :: (Eq a, Eq b) => a -> BM b a -> Bool   

lookupBM :: (Eq a, Eq b) => a -> BM a b -> Maybe b   

lookupBMR :: (Eq a, Eq b) => a -> BM b a -> Maybe b   

lookupWithDefaultBM :: (Eq a, Eq b) => a -> b -> BM b a -> a   

lookupWithDefaultBMR :: (Eq a, Eq b) => a -> b -> BM a b -> a   

bmToLists :: BM a b -> ([(a,b)],[(b,a)])   

keysBM :: BM a b -> [a]   

eltsBM :: BM a b -> [b]   

ppBM :: ((a,b) -> Doc) -> BM a b -> Doc   

Pretty print bidirectional map