úÎjÊh2      !"#$%&'()*+,-./01 Safe-Infered2,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 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)5. Build a bimap from a list of pairs, where both the fst and snd5 halves of the list are in strictly ascending order. CThis precondition is checked; an invalid list will cause an error. Version: 0.2.3 O(n)5. Build a bimap from a list of pairs, where both the fst and snd5 halves of the list are in strictly ascending order. This precondition is not) checked; an invalid list will produce a malformed bimap. Version: 0.2.3 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). 9Filter all association pairs that satisfy the predicate. (Note that the predicate will be applied twice for each association in the bimap. Version: 0.2.4 !O(n). .Partition the bimap according to a predicate. FThe first bimap contains all associations that satisfy the predicate; >the second contains all associations that fail the predicate. (Note that the predicate will be applied twice for each association in the bimap. Version: 0.2.4 " O(n*log n). CTest if the internal bimap structure is valid. This should be true 9for any bimap created using the public interface, unless  has been used inappropriately.  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 0O(log n). (Find the element with minimal left key. Calls 2 if the bimap is empty. Version: 0.2.2 1O(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  !"#$%&'()*+,-./01452  !"#$%&'()*+,-./012  01*+./(),-&' !%"#$4  !"#$%&'()*+,-./01456      !"#$%&'()*+,-./01234564789:; bimap-0.2.4 Data.BimapBimapempty singletonnullsizemembermemberR notMember notMemberR pairMember pairNotMemberinsert tryInsertdeletedeleteRlookuplookupR!!>fromList fromAListtoListfromAscPairListfromAscPairListUnchecked toAscList toAscListRassocskeyskeysRelemstoMaptoMapRfilter partitionvalidtwisttwistedfold deleteFindMaxdeleteFindMaxR deleteMax deleteMaxRfindMaxfindMaxR deleteFindMindeleteFindMinR deleteMin deleteMinRfindMinfindMinRbaseGHC.ErrerrorGHC.Basefoldr $fEqBimap $fShowBimap