Also I think you could do away with storing "prev" for each node and make it like std::forward_list(with some additional work during eviction).
> We pushed SIEVE a bit further by letting it peek into the future – well, sort of. We tested how well it could guess the next request. It turns out, with this extra bit of foresight, SIEVE is nailing it, outperforming the rest in almost all scenarios.
No idea what they mean here.