def __unicode__(s): return unicodeJoin(u" ", s.nodes)
def __unicode__(s): return u"[%s %s [%s]]" % ("New" if s.isInstance else "Inherit", unicode(s.base), unicodeJoin(u", ", s.values))
def __unicode__(s): return u"(%s)" % (unicodeJoin(u", ", s.statements))
def __unicode__(s): return u"[Array %s]" % (unicodeJoin(u", ", s.contents))
def __unicode__(s): return u"[Apply %s]" % (unicodeJoin(u" ", [s.f, s.arg]))
def __unicode__(s): result = u"[Match" for match in s.matches: result += " [Case %s [%s] %s]" % (unicode(match.targetExe), unicodeJoin(", ", match.unpacks), unicode(match.statement)) result += "]" return result
def __unicode__(s): return u"[%s %s]" % ("While" if s.loop else "If", unicodeJoin(u" ", [s.condClause, s.ifClause] + ([s.elseClause] if s.elseClause else [])))
def __unicode__(s): tags = (["Scoped"] if s.hasScope else []) + (["Returning"] if s.shouldReturn else []) return u"[Sequence%s %s]" % (("(%s)"%u", ".join(tags)) if tags else "", unicodeJoin(u" ", s.execs))