Ruby is an incredibly powerful and convenient language that does a lot for
developers behind the scenes. One of the most important things it does is create
and garbage collect objects automatically. To make sure our programs don't run
out of memory though, Ruby needs an efficient way