[e-lang] probably cluelessly beating a dead horse

Toby Murray toby.murray at comlab.ox.ac.uk
Sat Feb 23 08:44:24 EST 2008


On Sat, 2008-02-23 at 00:02 -0800, Raoul Duke wrote:
> But, is it possible to have a capability be split in half?

Do you mean, given some capability, c, perform some operation that
returns c1 and c2, such that c1 and c2 must be used together to achieve
what could have been done with c? 

If so, can't we achieve that using sealer/unsealers ?

def splitCap(c){ 
   def [sealer, unsealer] := makeSealerUnsealerPair()
   c2 := sealer.seal(c)
   return [unsealer, c2]
}

def [c1, c2] := splitCap(c)

We need to use c1 and c2 together to recreate c.

We could create a custom abstraction if we want it to be symmetric (i.e.
you can invoke c2 passing c1 to get back c, as well as invoking c1
passing c2.)

Or is this what you were getting at and  I just misunderstood?




More information about the e-lang mailing list