If Ian can make defaulting work, then I'd prefer that solution. It hurts nobody and just makes everything work better.
length was just the most galling example among many.
The resolution to Ian's suggestion would absolutely affect just how liberal we want to be with generalizing more of the list combinators to Foldable/Traversable.
There are a lot of desiderata to consider in balancing the needs of base.
Forcing the only list based instance to be String is an arbitrary decision, but it fixes the vast majority of the issues with a typeclass and extension that was intended to be a convenience but currently causes a great deal of incovenience in otherwise unrelated code when you turn it on.
Having base export two randomly different versions of the same combinator all over the place is also an inconvenience and fixing it comes with some tension towards OverloadedStrings.
Forcing users to use signatures on every String and import Data.Traversable and Data.Foldable qualified "works," but it is the design equivalent of sticking your head in the sand and pretending their we don't have any problems.
-Edward