If you could "solve" concat, might that also lead to be being able to do without the Skip constructor? Skip was added explicitly to be able to efficiently handle things like filter (without it the Step datatype is exactly the base functor for lists), but if concat "works", then filter p can be expressed as concat . map (\x -> if (p x) then [x] else []). Of course, presumably filter isn't the only function that requires Skip, I don't know what the others are. (Also of course "solve" and "works" are intentionally fuzzy, with the point being that I don't know if "solving" concat implies that the desirable properties would survive composition in the suggested manner.)
--
Your ship was destroyed in a monadic eruption.