The one law that is in the comments currently (I think) is the ParThreadsafe law. But we also need some official account of where and whether we depend on idempotency of actions in a given monad.
Should we also some how explicitly track whether fork or addHandler assumes idempotency? (Rather than leaving all that in the domain of preprocessor flags.)
OR, maybe we want to conclude that this is getting too complex, and for the idempotency axis we just want to commit, and not parameterize the design.
The one law that is in the comments currently (I think) is the
ParThreadsafe
law. But we also need some official account of where and whether we depend on idempotency of actions in a given monad.Should we also some how explicitly track whether
fork
oraddHandler
assumes idempotency? (Rather than leaving all that in the domain of preprocessor flags.)OR, maybe we want to conclude that this is getting too complex, and for the idempotency axis we just want to commit, and not parameterize the design.