How do I make a Constant Applicative Form into, well, not a Constant Applicative Form, to stop it being retained for the lifetime of the program?
I\'ve tried this ap
You need to hide the fact that the rhs is a CAF from the optimizer. Something like this should do it.
twoTrues :: () -> [[[Bool]]] twoTrues u = map (++ (True : repeat (false u))) . trueBlock <$> [1..] {-# NOINLINE false #-} false :: () -> Bool false _ = False