slow variant, but more haskell way
use takeWhile with infinite list for Haskell
update report