Return the intersection of two Iterable (all the elements that both Iterable have in common).
Iterable<T> intersect(Iterable<T> l) => foldLeft([], (a, e) => l.elem(e) ? [...a, e] : a);