reflex icon indicating copy to clipboard operation
reflex copied to clipboard

Should we deprecate `MonadHold (SpiderHost x)`?

Open ryantrinkle opened this issue 4 years ago • 0 comments

Currently, MonadHold does not have documented laws, but there are some laws people might intuitively expect. For instance:

do a <- hold x y
   b <- hold x y

One may expect a and b to be equivalent, but in SpiderHost's instance, it's possible for a frame to occur in between those two lines.

This is even clearer in the case of:

e <- now
b <- hold 0 (1 <$ e)

In most MonadHold instances, b will definitely change to value 1. In SpiderHost, it will always be 0, because the now will finish firing before the hold executes.

I'm not fully convinced that MonadHold (SpiderHost x) is useful, and it may be better not to have it.

ryantrinkle avatar May 14 '20 15:05 ryantrinkle