- bag - put, get
- stack - push, pop, settop
- bag - 〈 elems, bound 〉
- stack - 〈 items, limit 〉
put(i):
require size( b.elems ) < b.bound
promise b′ = 〈 b. elems \uplus {i}, b.bound 〉
push(i):
require length( s.items ) < s.limit
promise s′ = 〈 s.items ·i, s.limit 〉