code: def setcomprehension_walk3(self, node, collection_index):
          
          p = self.prec
          self.prec = 27
  
          code = Code(node[1].attr, self.scanner, self.currentclass)
          ast = self.build_ast(code._tokens, code._customize)
          self.customize(code._customize)
          ast = ast[0][0][0]
          store = ast[3]
          collection = node[collection_index]
  
          n = ast[4]
          list_if = None
          assert n == 'comp_iter'
  
          # find innermost node
          while n == 'comp_iter':
              n = n[0] # recurse one step
              # FIXME: adjust for set comprehension
              if n == 'list_for':
                  store = n[2]
                  n = n[3]
              elif n in ('list_if', 'list_if_not', 'comp_if', 'comp_if_not'):
                  # FIXME: just a guess
                  if n[0].kind == 'expr':
                      list_if = n
                  else:
                      list_if = n[1]
                  n = n[2]
                  pass
              pass
  
          assert n == 'comp_body', ast
  
          self.preorder(n[0])
          self.write(' for ')
          self.preorder(store)
          self.write(' in ')
          self.preorder(collection)
          if list_if:
              self.preorder(list_if)
          self.prec = p
docs: Set comprehensions the way they are done in Python3.
          They're more other comprehensions, e.g. set comprehensions
          See if we can combine code.