code: def n_list(self, node):
          
          p = self.prec
          self.prec = 100
          n = node.pop()
          lastnode = n.kind
          start = len(self.f.getvalue())
          if lastnode.startswith('BUILD_LIST'):
              self.write('['); endchar = ']'
          elif lastnode.startswith('BUILD_TUPLE'):
              self.write('('); endchar = ')'
          elif lastnode.startswith('BUILD_SET'):
              self.write('{'); endchar = '}'
          elif lastnode.startswith('ROT_TWO'):
              self.write('('); endchar = ')'
          else:
              raise RuntimeError('Internal Error: n_list expects list or tuple')
  
          flat_elems = []
          for elem in node:
              if elem == 'expr1024':
                  for subelem in elem:
                          for subsubelem in subelem:
                              flat_elems.append(subsubelem)
              elif elem == 'expr32':
                  for subelem in elem:
                      flat_elems.append(subelem)
              else:
                  flat_elems.append(elem)
  
          self.indent_more(INDENT_PER_LEVEL)
          if len(node) > 3:
              line_separator = ',\n' + self.indent
          else:
              line_separator = ', '
          sep = INDENT_PER_LEVEL[:-1]
  
          # FIXME:
          # if flat_elems > some_number, then group
          # do automatic wrapping
          for elem in flat_elems:
              if (elem == 'ROT_THREE'):
                  continue
  
              assert elem == 'expr'
              value = self.traverse(elem)
              self.node_append(sep, value, elem)
              sep = line_separator
          if len(node) == 1 and lastnode.startswith('BUILD_TUPLE'):
              self.write(',')
          self.write(endchar)
          finish = len(self.f.getvalue())
          n.parent = node.parent
          self.set_pos_info(n, start, finish)
          self.set_pos_info(node, start, finish)
          self.indent_less(INDENT_PER_LEVEL)
          self.prec = p
          self.prune()
          return
docs: prettyprint a list or tuple