Hi > > Cons: Makes the simplifier slightly more complex - but I hope not by much! > > And it doesn't work for my case -- I'd really want length as a compile > time constant. > > Could you elaborate on what kind of rules you think we could write with > the ability to get the head?
One of my ideas was some RULES that expand: test x | "neil" `isPrefixOf` x = ... | "ned" `isPrefixOf` x = ... And obtains direct pattern-matching code. I have a lazy continuation-based parsing library which could use this extensively. See my other ongoing thread on this mailing list for more details of where this is going. > The rule I'd like to write is: > > "pack/packAddress" pack (unpackCString addr) = ByteString (length# xs) 0 > addr That requires Proposal 2, so needs to have an API defined -- including length# and some others. Out of curiosity, how much performance boost would this give in ByteString? > That sounds great! Please let's have a chat before you sail in -- I have a > good idea where to put this. Simon: I will email you in a couple of weeks to discuss it. Thanks Neil _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users