// queue:    inserts and removes happen at opposite ends
// insfirst: elements flow from "first," "head" or "front", to "last", "tail" or "back"
// remelem:  removes happen via an element-level operation and inserts happen via the api-provided "first"/"head"/"front"

#define BOP_TEARDOWN(lst, ui, iters, i) BFX_REMOVE_LAST(B_UserItem, lst)

#define BOP_INSERT(lst, ui, iters, i) BFX_INSERT_FIRST(B_UserItem, lst, ui[i])
#define BOP_REMOVE(lst, ui, iters, i) BFX_REMOVE_HERE(B_UserItem, lst, iters[i])
