Distributed Cap Example: Money
def makeMint(name) :any {
def [sealer, unsealer] := makeBrandPair(name)
to makePurse(var balance :(integer >= 0)) :any {
def decr(amount :(0..balance)) {
to getBalance() :any { balance }
to sprout() :any { mint.makePurse(0) }
to getDecr() :any { sealer.seal(decr) }
to deposit(amount :int, src) {
unsealer.unseal(src.getDecr())(amount)