static <A, B> Map<A, B> toMapAccordingToHeader(Collection<B> row, L<A> header) {
  Iterator<B> it = iterator(row);
  new HashMap<A, B> map;
  for i over header:
    if (!it.hasNext()) break;
    else map.put(header.get(i), it.next());
  ret map;
}