=== groovy-0001: groovy-0001 — StaticTypeCheckingVisitor: `collectedNames` ArrayList linear scan O(E×C) ===
N=100   k=100  : defective=0.102ms  fixed=0.004ms  speedup=25.4x
N=500   k=500  : defective=2.652ms  fixed=0.025ms  speedup=105.2x
N=1000  k=1000 : defective=10.887ms  fixed=0.051ms  speedup=212.5x
N=2000  k=2000 : defective=40.393ms  fixed=0.104ms  speedup=387.4x

=== groovy-0002: groovy-0002 — Verifier: `Arrays.asList(params).contains(p)` fresh allocation per variable expression O(V×P) ===
N=100   k=100  : defective=0.093ms  fixed=0.003ms  speedup=26.5x
N=500   k=500  : defective=2.326ms  fixed=0.023ms  speedup=103.1x
N=1000  k=1000 : defective=9.248ms  fixed=0.047ms  speedup=198.8x
N=2000  k=2000 : defective=35.832ms  fixed=0.096ms  speedup=371.9x

