If this is indeed a mandatory attribute, maybe it could be checked?
[ERROR] |lib://rascal-core/lang/rascalcore/check/CollectSyntaxDeclaration.rsc|(2788,15,<72,14>,<72,29>): |lib://rascal-core/lang/rascalcore/check/CollectSyntaxDeclaration.rsc|:72,14: StackOverflow()
[ERROR] at getProd(|lib://rascal-core/lang/rascalcore/check/CollectSyntaxDeclaration.rsc|(2788,16,<72,14>,<72,30>))
at Anonymous Function(|lib://rascal-core/lang/rascalcore/check/CollectSyntaxDeclaration.rsc|(8261,77,<197,23>,<197,100>))
at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(15646,34,<481,29>,<481,63>))
at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(13064,120,<413,12>,<417,13>))
at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(10185,25,<329,12>,<329,37>))
at evalCalc(|lib://typepal/analysis/typepal/Solver.rsc|(15815,17,<484,16>,<484,33>))
at evalOrScheduleCalc(|lib://typepal/analysis/typepal/Solver.rsc|(13064,120,<413,12>,<417,13>))
at fireTrigger(|lib://typepal/analysis/typepal/Solver.rsc|(10185,25,<329,12>,<329,37>))
...
If this is indeed a mandatory attribute, maybe it could be checked?