FoldrW/buildW issues

Dan Doel dan.doel at gmail.com
Sun Sep 14 18:08:34 UTC 2014


Which scanl wrapper are you referring to?

The first one I figured out was quite wrong in certain ways. But I think
the new one is less controversial; it's a lot like the reverse one.

On Sun, Sep 14, 2014 at 1:03 PM, David Feuer <david.feuer at gmail.com> wrote:

> Joachim Breitner wrote:
>
>> Am Samstag, den 13.09.2014, 00:01 -0400 schrieb David Feuer:
>> > On Sep 12, 2014 2:35 PM, "Joachim Breitner" <mail at joachim-breitner.de>
>> > wrote:
>> > > Interesting. I assumed that some wrap.unwrap=id law would hold, or
>> > at
>> > > least some moral approximation (e.g. disregarding bottoms in an
>> > > acceptable manner). But if the wrappers have to do arbitrary stuff
>> > that
>> > > can arbitrarily interact with how the producer calls them, this
>> > becomes
>> > > a bit less appealing.
>> >
>> > No, nothing pleasant like that, I'm afraid. isoSimple is like that of
>> > course, but once it gets to foldl, the fusion rule is handing the
>> > builder a wrap/unwrap pair that isn't even close to that.
>>
>> and parametricity doesn't help here? Note that due to the forall in the
>> type of buildW, you can probably reason about what kind of values buildW
>> can produce, as it can only use whatever the consumer handed to it.
>> Maybe there is an invariant for that type, and the worker/wrapper pair
>> is the identity for values that fulfill that invariant.
>>
>
> That seems reasonable, and I suspect without any proof that Takano Akio's
> wrapper for foldl and Dan Doel's wrapper for reverse probably satisfy it.
> Scans seem to be more of a challenge. It appears to me that Dan's scanl
> wrapper probably does *not* satisfy that requirement, and I don't know
> enough to have much chance of finding one that does.
>
> David
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140914/ef5cefc6/attachment.html>


More information about the ghc-devs mailing list