···334334 // flex-rigid
335335 | (Schematic({schematic, allowed}), Symbol(_) | Var(_)) =>
336336 if (
337337+ // TODO: is this check strong enough to prevent cycles? do we need to check more
337338 !Belt.Set.has(schematicsIn(bt), schematic) &&
338339 Belt.Set.subset(freeVarsIn(bt), Belt.Set.fromArray(allowed, ~id=module(IntCmp)))
339340 ) {