I think I finally found the cause of a key laziness bug in reactive. It took me a long time to track down. The way I structured the AddBounds type stops me from getting partial info I need. There's a critical max on times in joinE. It'll be 'max (NoBound t0) ta', and I know that ta is either a NoBound or a MaxBound, but without knowing which, no info can come out, which stops the consumer of that max from knowing that the time is at least NoBound t0. Now I think I have to make some pervasive changes to reactive.
I'd like to develop the QC tests that will catch these mistakes much earlier. I recently read the "Chasing Bottoms" paper, which some good techniques.
- Conal