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