True, but I also find that when you are dealing with circular reference and shared object scopes a bit of extra syntax and wrapping is the least of your problems.
In this case the garbage collector handles the memory for you, but for every other complication arising from these patterns you are still on your own. Keeping track of updates, locks, non-memory resource.
You can just find them in game as you play. It is pretty fun, but you probably won't have all of them yet. At least I'm only about 1/3 of the way.
The problem is locking rewards behind them that some players apparently feel like they absolutely need to play the game.