On 6/19/07, Thomas Shackell <shackell@cs.york.ac.uk> wrote:
Creighton Hogg wrote:
> Well I think I've run into this problem...maybe.  All but one of the
> tests pass, the one that doesn't is the timeLargeArray test, and it
> fails with this error
> yhc: superclassesI InfoUsed (Id 68) [(Type
> class,Ord,"Data.Ix",510:8-510:10)]
> Now my main question is how some PackedStrings can be reversed and
> others not when it looks like everything that uses PackedString imports
> it from SysDeps?  The only exception I could find was
> compiler98/DotNet/Show.hs.


Hmmm that's interesting, did you change the compiler source code at all?
You usually get those kind of errors because the compiler has ended up
with a data structure that it wasn't expecting.

Indeed all PackedStrings are imported from SysDeps, the problem is what
happens after that. Sometimes they are used as

           string' = packString string

and other times

          string' = packString (reverse string)

There doesn't seem to be a lot of logic to the choices ...

Yeah in line with Neal's suggestion, I had added a FakeString module that was imported by SysDeps as PackedString and just provided
unpackPS = id
and
packString = id
I had done something silly where that first one didn't build properly, but now that that's fixed I'm getting errors I don't really understand on 5 of the tests.  I'll probably look at them tonight & ask questions about how chunks of the code work.

I'm sorry that I had misunderstood the reversing thing.  I had thought you meant that there were two different versions of PackedString, one of which required that trick and the other didn't, analogous to the four versions of ByteString.  I guess I'm really confused then why you'd be reversing the strings in the first place. 

I'm appreciative of the help,
Creighton