If someone wants to break a rule over multiple lines (usually because leaving the whole thing on one line would make it spill out past the edge of the box), then they have to specify the line break manually and the correct number of ampersands required by the encapsulating array environment, to get everything to line up again. This is fiddly, messy, error-prone and makes the cprule a 'leaky abstraction'. It would be much better to have a package-specific linebreak command included which can automatically adapt itself to whichever part of the rule it is in.
It is entirely unclear at this point how to implement such a thing, though.
If someone wants to break a rule over multiple lines (usually because leaving the whole thing on one line would make it spill out past the edge of the box), then they have to specify the line break manually and the correct number of ampersands required by the encapsulating
array
environment, to get everything to line up again. This is fiddly, messy, error-prone and makes thecprule
a 'leaky abstraction'. It would be much better to have a package-specific linebreak command included which can automatically adapt itself to whichever part of the rule it is in.It is entirely unclear at this point how to implement such a thing, though.