// stack: inserts and removes happen at the same end // insfirst: stack's action happens at the end called "first", "head" or "front" // 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_FIRST(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[NumNodes-(i)-1])