<div dir="auto"><div>I think you'll at least have to specify that g is lazy, because f may let its argument "leak" arbitrarily into the return value of the action it produces. But I don't have a clear sense of whether this is a good law otherwise.<br><div class="gmail_extra"><br><div class="gmail_quote">On Sep 6, 2017 10:04 PM, "Wolfgang Jeltsch" <<a href="mailto:wolfgang-it@jeltsch.info">wolfgang-it@jeltsch.info</a>> wrote:<blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="quoted-text">
<br>
</div>While we are at pure right shrinking, let me bring up another question:<br>
Why is there no general right shrinking axiom for MonadFix? Something<br>
like the following:<br>
<br>
Right Shrinking:<br>
<br>
    mfix (\ ~(x, _) -> f x >>= \ y -> g y >>= \z -> return (y, z)) >>= return . snd<br>
    =<br>
    mfix f >>= g<br>
<br>
Can this be derived from the MonadFix axioms? Or are there reasonable<br>
MonadFix instances for which it does not hold?<br>
<div class="elided-text"><br>
All the best,<br>
Wolfgang<br>
______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
</div></blockquote></div><br></div></div></div>