It would probably speed up my code somewhat if the GHC libraries provided
more support for PackedStrings. For example, some code I have
reads in stuff from a Posix fd (using Posix.fdRead) and then feeds it
to the GHC regular expression interface (using RegexString.matchRegex).
It is frustrating that although I am getting no benefit from all the boxing and
thunks contained in the String type, I am still having to use it to get
from fdRead to matchRegex.
Therefore my suggestion is that such functions come in two flavours; one
primitive version which uses PackedStrings, and one higher-level one which
uses Strings. (The transformation from one to the other is hopefully
trivial . . .)
Of course I could just use the new foreign interface to call the relevant
functions, but that's still comparatively yucky even with all the new
improvements.