spanM, takeWhileM in Hasell
===

I have following problem: Given a `[String]` and `String->IO Int`. So I can make a transformation (map) and get `[ IO Int]`. Now, I have to do two things -- perfrorm that actions, from start, until result is positive and I need to know, was all list processed.
I am forbidded to process after first non-positive result. 

`takeWhileM` do not answer second question(length compraison is too impractical),
and `spanM` perform forbidden IO.

Of course, I can write recursive function myself, but I want to do it in Haskell way, with all
good of high-order functions.

Suggestions? Probably, use competely another approach?
Task above is a bit simplified task from my project.