docs: def add_widget(self, wid, index=0, canvas=None):
          """Put the :class:`Pawn` at a point along my length proportionate to
          how close it is to finishing its travel through me.
  
          Only :class:`Pawn` should ever be added as a child of :class:`Arrow`.
  
          """
          super().add_widget(wid, index, canvas)
          if not hasattr(wid, 'group'):
              return
          wid._no_use_canvas = True
          mycanvas = (
              self.canvas.before if canvas == 'before' else
              self.canvas.after if canvas == 'after' else
              self.canvas
          )
          mycanvas.remove(wid.canvas)
          pawncanvas = (
              self.board.spotlayout.canvas.before if canvas == 'before' else
              self.board.spotlayout.canvas.after if canvas == 'after' else
              self.board.spotlayout.canvas
          )
          for child in self.children:
              if hasattr(child, 'group') and child.group in pawncanvas.children:
                  pawncanvas.remove(child.group)
              pawncanvas.add(child.group)
          self.pospawn(wid)