bbufh = interface {empty,mid,midput,full,fullput}
extends bbuf { mid } becomes { mid, midput }
{ full } becomes { full, fullput }
gget = method({mid,full}b:self{mid,empty}) replies(int)
end bbufh
bbufhi = class implements bbufh extends bbuf_basei
after get{mid} use {mid}, put{mid} use {midput}, put{full} use {fullput}
gget = method({mid,full}b:self{mid,empty}) replies(int)
reply(b!get())
end gget
end bbufhi