docs: def emap(self, func):
          """
          :param func:
          :type func: T, int -> U
          :rtype: TList[U]
  
          Usage:
  
              >>> TList([10, 20, 30, 40, 50]).emap(lambda x, i: (x+1, i))
              [(11, 0), (21, 1), (31, 2), (41, 3), (51, 4)]
          """
          return TList([func(x, i) for i, x in enumerate(self)])