You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
Currently,
MonadHold
does not have documented laws, but there are some laws people might intuitively expect. For instance:One may expect
a
andb
to be equivalent, but inSpiderHost
's instance, it's possible for a frame to occur in between those two lines.This is even clearer in the case of:
In most
MonadHold
instances,b
will definitely change to value 1. InSpiderHost
, it will always be 0, because thenow
will finish firing before thehold
executes.I'm not fully convinced that
MonadHold (SpiderHost x)
is useful, and it may be better not to have it.The text was updated successfully, but these errors were encountered: