Expr.content =
meta-roles.content,
(element op { op-Expr.type }
| op-Expr.content),
element slot { slot.type }*,
((arg | arg.content)+ | repo? | repo),
element slot { slot.type }*,
resl?
a) does not allow no arguments
b) has a redundant choice: repo? | repo
The correct RNC would be
Expr.content =
meta-roles.content,
(element op { op-Expr.type }
| op-Expr.content)?,
element slot { slot.type }*,
((((arg | arg.content)+ | repo?)|repo),
element slot { slot.type }*)?,
resl?
(Note the optional operator as well for keyref instances.)