lazy: take/takewhile
lazy: take/takewhile