docs: def newick(self):
          '''Output this ``Tree`` as a Newick string
  
          Returns:
              ``str``: Newick string of this ``Tree``
          '''
          if self.root.edge_length is None:
              suffix = ';'
          elif isinstance(self.root.edge_length,int):
              suffix = ':%d;' % self.root.edge_length
          elif isinstance(self.root.edge_length,float) and self.root.edge_length.is_integer():
              suffix = ':%d;' % int(self.root.edge_length)
          else:
              suffix = ':%s;' % str(self.root.edge_length)
          if self.is_rooted:
              return '[&R] %s%s' % (self.root.newick(),suffix)
          else:
              return '%s%s' % (self.root.newick(),suffix)