sclass GInterpretable { S text; S ruleID; // can be multiple IDs with + O mr; // actually RuleEngine2_MatchedRule *() {} *(S *text) {} *(S *text, S *ruleID) {} *(S *text, S *ruleID, O *mr) {} toString { ret text; } }