Correct confusion between std::list and std::deque
Implement a simple mark and sweep garbage collector