Generating functions for enumerating self-avoiding rings on the square lattice | Synapse