úÎ^ô\H.      !"#$%&'()*+,-2,A bidirectional map between values of types a and b. ./O(1). The empty bimap.  Version: 0.2 O(1)!. A bimap with a single element.  Version: 0.2 O(1). Is the bimap empty?  Version: 0.2 O(1)'. The number of elements in the bimap.  Version: 0.2 O(log n)0. Is the specified value a member of the bimap?  Version: 0.2 O(log n). A version of  specialized to the right key.  Version: 0.2 O(log n)4. Is the specified value not a member of the bimap?  Version: 0.2 O(log n). A version of  specialized to the right key.  Version: 0.2 O(log n). Are the two values associated with each other in the bimap? BThis function is uncurried in its first two arguments, so that it can be used infix.  Version: 0.2 O(log n). 7Are the two values not in the bimap, or not associated  with each other? (Complement of  .)  Version: 0.2 O(log n). :Insert a pair of values into the bimap, associating them. AIf either of the values is already in the bimap, any overlapping bindings are deleted.  Version: 0.2 O(log n). ?Insert a pair of values into the bimap, but only if neither is already in the bimap. Version: 0.2.2 0O(log n). =Insert a pair of values into the bimap, without checking for overlapping bindings. -If either value is already in the bimap, and Eis not bound to the other value, the bimap will become inconsistent. 1O(log n). Common implementation for   and . O(log n). *Delete a value and its twin from a bimap. CWhen the value is not a member of the bimap, the original bimap is  returned.  Version: 0.2 O(log n) A version of   specialized to the right key.  Version: 0.2 O(log n). DLookup a left key in the bimap, returning the associated right key. This function will return the result in the monad, or fail if  the value isn't in the bimap.  Version: 0.2 O(log n).  A version of ' that is specialized to the right key, (and returns the corresponding left key.  Version: 0.2 O(log n). 6Find the right key corresponding to a given left key. Calls 2# when the key is not in the bimap.  Version: 0.2 O(log n).  A version of (!)' that is specialized to the right key, (and returns the corresponding left key.  Version: 0.2  O(n*log n). ?Build a map from a list of pairs. If there are any overlapping Bpairs in the list, the later ones will override the earlier ones.  Version: 0.2  O(n*log n). )Build a map from a list of pairs. Unlike , earlier pairs &will take precedence over later ones.  The name  fromAList* is a reference to Lisp-style association Dlists, where associations can be overridden by prepending new ones. DNote that when duplicates occur in both the keys and in the values,  fromList xs /= fromAList (reverse xs). However, if either 1contains no duplicates, then the equality holds. Version: 0.2.2 O(n)). Convert to a list of associated pairs.  Version: 0.2 O(n). :Convert to a list of associated pairs, with the left-hand values in ascending order. :Since pair ordering is lexical, the pairs will also be in ascending order.  Version: 0.2 O(n). ;Convert to a list of associated pairs, with the right-hand 1values first in the pair and in ascending order. :Since pair ordering is lexical, the pairs will also be in ascending order.  Version: 0.2 O(n). =Return all associated pairs in the bimap, with the left-hand values in ascending order.  Version: 0.2 O(n). ;Return all left-hand keys in the bimap in ascending order.  Version: 0.2 O(n). <Return all right-hand keys in the bimap in ascending order.  Version: 0.2 O(n). An alias for .  Version: 0.2 O(1)7. Extract only the left-to-right component of a bimap. Version: 0.2.1 O(1)7. Extract only the right-to-left component of a bimap. Version: 0.2.1  O(n*log n). CTest if the internal bimap structure is valid. This should be true 2for any bimap created using the public interface.  Version: 0.2 O(1). =Reverse the positions of the two element types in the bimap.  Version: 0.2 O(1). :Reverse the positions of the two element types in a bimap transformation.  Version: 0.2 !O(n). 1Fold the association pairs in the map, such that ! f z == 3 f z . .  Version: 0.2 "O(log n). 3Delete and find the element with maximal left key. Calls 2 if the bimap is empty. Version: 0.2.2 #O(log n). 4Delete and find the element with maximal right key. Calls 2 if the bimap is empty. Version: 0.2.2 $O(log n). *Delete the element with maximal left key. Calls 2 if the bimap is empty. Version: 0.2.2 %O(log n). +Delete the element with maximal right key. Calls 2 if the bimap is empty. Version: 0.2.2 &O(log n). (Find the element with maximal left key. Calls 2 if the bimap is empty. Version: 0.2.2 'O(log n). .Find the element with maximal right key. The /right-hand key is the first entry in the pair. Calls 2 if the bimap is empty. Version: 0.2.2 (O(log n). 3Delete and find the element with minimal left key. Calls 2 if the bimap is empty. Version: 0.2.2 )O(log n). 4Delete and find the element with minimal right key. Calls 2 if the bimap is empty. Version: 0.2.2 *O(log n). *Delete the element with minimal left key. Calls 2 if the bimap is empty. Version: 0.2.2 +O(log n). +Delete the element with minimal right key. Calls 2 if the bimap is empty. Version: 0.2.2 ,O(log n). (Find the element with minimal left key. Calls 2 if the bimap is empty. Version: 0.2.2 -O(log n). .Find the element with minimal right key. The /right-hand key is the first entry in the pair. Calls 2 if the bimap is empty. Version: 0.2.2 .  !"#$%&'()*+,-.  ,-&'*+$%()"#! .  !"#$%&'()*+,-4      !"#$%&'()*+,-./01234564789 bimap-0.2.2 Data.BimapBimapempty singletonnullsizemembermemberR notMember notMemberR pairMember pairNotMemberinsert tryInsertdeletedeleteRlookuplookupR!!>fromList fromAListtoList toAscList toAscListRassocskeyskeysRelemstoMaptoMapRvalidtwisttwistedfold deleteFindMaxdeleteFindMaxR deleteMax deleteMaxRfindMaxfindMaxR deleteFindMindeleteFindMinR deleteMin deleteMinRfindMinfindMinRMkBimap.: unsafeInsertdeleteEbaseGHC.ErrerrorGHC.Basefoldr