Does swift have a cycle collector? With the whole dance in the language manual of "unowned" and "weak" references, I couldn't figure out if the cycle detection (a) happens at all if all references are strong, and (b) happens deterministically if all references are unowned.