Hi folks, I just announced ListLike[1] on [EMAIL PROTECTED] Rather than repeat that announcement here, I'd like to make a few observations that came out of the development of this program:
* I wrote extensive QuickCheck cases for this and wrapped them in HUnit for better display and future extensibility. Two bugs in the GHC base libraries were discovered as a result (one has been fixed already in HEAD, one not) * Hugs programs that use cpphs can't use ByteString * It would be really nice if QuickCheck supported I/O and some version of HUnit's TestLabel to generate hierarchical names when failures occur. * It would also be much nicer if QuickCheck defined Arbitrary instances for Word8 and Char. On Hugs, QuickCheck also lacks an instance of Maybe, but GHC has it for some reason. * Testing functions like foldl in Hugs, where QuickCheck is supplying the list and the function, cause Hugs to crash with stack errors. Testing some functions over ByteStrings cause Hugs to crash complaining of being out of ForeignPtrs. I have yet to figure out how to fix either problem; raising the heap size doesn't help. * I had some cases in String.hs[2] where Hugs did not permit me to define the default functions within the class declaration. However, I could define the functions outside, with the exact same type signature as they'd have inside, and within the class declaration, just say something like "words = myWords" to refer to the external declaration. GHC worked fine both ways. It seems that Hugs has a number of issues with code like ListLike that uses some more advanced Haskell features, even though Hugs nominally supports them. If you look through my Mercurial changelogs, you'll see "fix blah for hugs" messages all over. Which is too bad, because Hugs seems more portable (especially to embedded devices) than GHC. [1] http://software.complete.org/listlike [2] http://software.complete.org/listlike/browser/src/Data/ListLike/String.hs _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe