> process [] = return () > process (file:files) = do x <- doit file > if x>0 then process files > else return () Or use a fold: > process' = foldl op True files > op True file = doit file > op False _ = False