<div dir="auto">Yes, shallow (but it looks through newtypes). To do it more deeply would require some way to mark where to stop.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Sep 3, 2021, 7:14 AM Henning Thielemann <<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
On Fri, 3 Sep 2021, David Feuer wrote:<br>
<br>
> Occasionally, it's useful to make things lazier. The utility-ht<br>
> package has long offered<br>
><br>
> forcePair :: (a,b) -> (a,b)<br>
> forcePair ~(a,b) = (a,b)<br>
<br>
right :-)<br>
<br>
> But that only works for pairs! If you want to work with records/tuples<br>
> much more generally, now you can do so conveniently with the lazify<br>
> package. Please take a look and let me know what you like and dislike,<br>
> and whether there's anything more you want.<br>
><br>
> <a href="https://hackage.haskell.org/package/lazify-0.1.0.1" rel="noreferrer noreferrer" target="_blank">https://hackage.haskell.org/package/lazify-0.1.0.1</a><br>
<br>
It's shallow lazify, right?<br>
</blockquote></div>