module Network.HTTP.Toolkit.Util where while :: Monad m => (a -> Bool) -> m a -> (a -> m ()) -> m () while p src action = go where go = do x <- src if p x then action x >> go else return ()