List and iterator more or less functional