<div dir="auto"><div>What if you go with the big hammer for that module: -O0? My main concern about that is that you won't get arity analysis. There may be some more -f flags I've missed...<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jan 20, 2023, 5:17 AM Michael Sperber <<a href="mailto:sperber@deinprogramm.de">sperber@deinprogramm.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, Jan 20 2023, David Feuer <<a href="mailto:david.feuer@gmail.com" target="_blank" rel="noreferrer">david.feuer@gmail.com</a>> wrote:<br>
<br>
> I don't know what all that means exactly (especially since GHC's demand<br>
> signatures have changed recently in a way I don't understand at all). But<br>
> for hiding divergence, one option is to use a module with demand analysis<br>
> disabled. Try {-# options_ghc -fno-strictness #-}. You'll likely need to<br>
> put oops in its own module to avoid interfering with desired optimizations.<br>
<br>
THanks for the suggestion!<br>
<br>
So I did this:<br>
<br>
{-# options_ghc -fno-strictness #-}<br>
module ConCat.Oops(oops) where<br>
<br>
import GHC.Stack (errorWithStackTrace) -- for oops<br>
<br>
-- | Pseudo function to fool GHC's divergence checker.<br>
oops :: String -> b<br>
oops str = errorWithStackTrace ("Oops: "++str)<br>
{-# NOINLINE oops #-}<br>
<br>
... but am getting the same result from the divergence checker, sadly ...<br>
<br>
-- <br>
Regards,<br>
Mike<br>
</blockquote></div></div></div>