span'' :: (a-> Bool) -> [a] -> ([a],[a]) span'' _ [] = ([],[]) span'' f (x:xs) | f x = (x:a,b) | otherwise = ([],x:xs) where (a,b) = span'' f xs