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
I'm pretty sure this will have to get baked in as a primitive. Given that it's not fully general; that's unfortunate. Anyway, the point is that we can get ~50% of the way to patching the efficiency gap to chor-lambda if we have an op like
sendShallow :: (Functor f, Show1 f)
=> Member l ps
-> (Member l ls, Located ls (f (Located ms a)))
-> Subset rs ps
-> Choreo ps m (Located rs (f (Located ms a))
What this would do/how it would work is it would apply void to the located functor, send that, and the recipient would map const Empty over it to replay the ()s with "not here".
This would let one send a top level structure without sending all the data. Afterward, everyone would be able to branch on the outer functor's structure, even though only ms would be able to unwrap its contents.
The text was updated successfully, but these errors were encountered:
The difficulty here is that some recipients may already know the inner data, and they should retain the abilty to use it.
so this likely needs to be done after soem refinements to avoid redundant sends, and also when we have some tools for handling set intersections and unions.
I'm pretty sure this will have to get baked in as a primitive. Given that it's not fully general; that's unfortunate. Anyway, the point is that we can get ~50% of the way to patching the efficiency gap to chor-lambda if we have an op like
What this would do/how it would work is it would apply
void
to the located functor, send that, and the recipient would mapconst Empty
over it to replay the()
s with "not here".This would let one send a top level structure without sending all the data. Afterward, everyone would be able to branch on the outer functor's structure, even though only
ms
would be able to unwrap its contents.The text was updated successfully, but these errors were encountered: