class FIFO(*array) { method pop { array.is_empty && die "underflow"; array.shift; } method push(*items) { array += items; self; } method empty { array.len == 0; } }