class_docstr: Maintains (bijective) mappings between two sets.
  
  Args:
      a (Sequence): sequence of set a elements.
      b (Sequence): sequence of set b elements.
code: def __init__(self, a: Sequence, b: Sequence):
      self.a_to_b = {}
      self.b_to_a = {}
      for i, j in zip(a, b):
          self.a_to_b[i] = j
          self.b_to_a[j] = i
      assert len(self.a_to_b) == len(self.b_to_a) == len(a) == len(b)
  
imports: import math
  import itertools
  from dataclasses import replace
  from typing import Mapping, Any, Sequence, Iterable, Iterator, Union, Tuple, Dict, Set
label_desc: Use image node_id 1 to create a new BiMap object  with example: obj = BiMap(a, b)