Adversarial thinking: what GANs teach us about AI app loops | Koder.ai