lazy: stream to list via reduce primitive