rewrote abFromListEither by recursing two steps at a time