<div dir="auto">Thanks, Marcin. That looks like what I'm after.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 13, 2020, 2:47 PM Marcin Szamotulski <<a href="mailto:profunctor@pm.me">profunctor@pm.me</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Hi David,<br></div><div><br></div><div>At IOHK we are using `ghc-heap` which is bundled with a recent version of ghc. We have a bit of architecture which allow to test for unexpected thunks and it worked very well for us: <a href="https://github.com/input-output-hk/cardano-prelude/blob/master/src/Cardano/Prelude/GHC/Heap/NormalForm/Classy.hs#L69" target="_blank" rel="noreferrer">https://github.com/input-output-hk/cardano-prelude/blob/master/src/Cardano/Prelude/GHC/Heap/NormalForm/Classy.hs#L69</a><br><br>Best regards,<br>Marcin Szamotulski<br></div></div><div><div><br></div><div><br></div></div><div><br></div><div>‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br></div><div> On Thursday, August 13, 2020 8:32 PM, David Feuer <<a href="mailto:david.feuer@gmail.com" target="_blank" rel="noreferrer">david.feuer@gmail.com</a>> wrote:<br></div><div> <br></div><blockquote type="cite"><div dir="auto">For testing purposes, I'd like to distinguish between thunks and non-thunks, to make sure that everything I require to be forced is. (I'd also like to know that nothing that's supposed to be lazy is forced, but that seems too hard to test in context.) Is there some magic I can use to check?<br></div></blockquote><div><br></div></blockquote></div>