Safe Haskell | None |
---|---|
Language | Haskell98 |
Finite bijections (implemented as a pair of maps).
- data BiMap a b = BiMap {
- biMapThere :: Map a b
- biMapBack :: Map b a
- lookup :: (Ord a, Ord b) => a -> BiMap a b -> Maybe b
- invLookup :: (Ord a, Ord b) => b -> BiMap a b -> Maybe a
- empty :: (Ord a, Ord b) => BiMap a b
- singleton :: (Ord a, Ord b) => a -> b -> BiMap a b
- insert :: (Ord a, Ord b) => a -> b -> BiMap a b -> BiMap a b
- union :: (Ord a, Ord b) => BiMap a b -> BiMap a b -> BiMap a b
- fromList :: (Ord a, Ord b) => [(a, b)] -> BiMap a b
- toList :: (Ord a, Ord b) => BiMap a b -> [(a, b)]
- prop_BiMap_invariant :: (Ord a, Ord b) => BiMap a b -> Bool
- tests :: IO Bool
Documentation
Finite bijective map from a
to b
. There, and back again.
BiMap | |
|
insert :: (Ord a, Ord b) => a -> b -> BiMap a b -> BiMap a b Source
Insert. Overwrites existing value if present.
union :: (Ord a, Ord b) => BiMap a b -> BiMap a b -> BiMap a b Source
Left-biased Union. O(Map.union).
fromList :: (Ord a, Ord b) => [(a, b)] -> BiMap a b Source
Construct from a list of pairs.
Does not check for actual bijectivity of constructed finite map.
toList :: (Ord a, Ord b) => BiMap a b -> [(a, b)] Source
Turn into list, sorted ascendingly by first value.