static L nlLogic_unrollAnd(Exp e) { new L l; nlLogic_unrollAnd_collect(e, l); ret l; } svoid nlLogic_unrollAnd_collect(Exp e, L out) { if (e cast And) { nlLogic_unrollAnd_collect(e.a, out); nlLogic_unrollAnd_collect(e.b, out); } else addIfNotNull(out, e); }