srecord RecursiveMatcher(IMatchFunction matchF) implements IMatchFunction { public bool get(O pat, O real, Map map) { if (pat instanceof WordSequence) { if (!real << WordSequence) false; ret matchWordSequence(pat/WordSequence, real/WordSequence, this, map); } ret matchF.get(pat, real, map); } }