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

#define BOP_INIT(lst, ui, iters, i) BFX_INSERT_LAST(B_UserItem, lst, ui[i])

#define BOP_INSERT(lst, ui, iters, i) BFX_INSERT_AFTER(B_UserItem, lst, ui[i], iters[i-1])
#define BOP_REMOVE(lst, ui, iters, i) BFX_REMOVE_FIRST(B_UserItem, lst)
