This project implements first class pairs with incremental mark and sweep garbage collection. The garbage collector doesn't recognize references to pairs held in regular Scratch variables and lists. If you need to hold such references, you can solve this by creating a linked list and marking it as a root, so that it doesn't get collected.