with m.If(x > y): # do a partitioned compare here
do something dynamic here
-where behind the scenes the above laborious for-loops (conceptually) are created, hidden, behind the scenes, looking to all intents and purposes that this is exactly like any other nmigen Signal.
+where behind the scenes the above laborious for-loops (conceptually) are created, hidden, looking to all intents and purposes that this is exactly like any other nmigen Signal.
This means that nmigen needs to "understand" the partitioning, in m.If, m.Else and m.Switch, at the bare minimum.