docs: def unflatten(guide, falttened_input):
      """Unflatten a falttened generator.
  
      Args:
          guide: A guide list to follow the structure
          falttened_input: A flattened iterator object
  
      Usage:
  
          guide = [["a"], ["b","c","d"], [["e"]], ["f"]]
          input_list = [0, 1, 2, 3, 4, 5, 6, 7]
          unflatten(guide, iter(input_list))
          >> [[0], [1, 2, 3], [[4]], [5]]
      """
      return [unflatten(sub_list, falttened_input) if isinstance(sub_list, list)
              else next(falttened_input) for sub_list in guide]