The reason the OP function cutWhitespaceworks only on the first line is because, due to the priority of the operator, it actually performs this function:
cutWhitespace (x:xs) = (filter (\xs -> (xs /=' ')) x) : xs
, , . filter x, x - ; " x".
" x" , "x":
Prelude> filter (\xs -> (xs /=' ')) " x"
"x"
, cutWhitespace, , , ([" y", " z"]) "x", ["x"," y"," z"].
, , , .. [[Char]].
, (x:xs) [] , .