I thought it would be clever to model "depends" edges as special kinds of input/output edges because that way I'd get loop detection for free. Except code says this graph doesn't contain any loops. Code is wrong. Do I attempt to fix this, or do I model depends edges differently?