resource Stack type result = enum(OK, OVERFLOW, UNDERFLOW) op push(int item) returns result r op pop(res int item) returns result r body Stack(int size) int store[1:size] int top = 0 proc push(item) returns r { if (top0) { item = store[top--]; r = OK } else if (top==0 ) { r = UNDERFLOW } } end Stack