Writing a lock-free queue from scratch

The ABA problem, pointer tagging, and CAS — by building it in Rust.