docs: def pospawn(self, pawn):
          """Position a :class:`Pawn` that is my child so as to reflect how far
          its :class:`Thing` has gone along my :class:`Portal`.
  
          """
          if self._turn < pawn.thing['arrival_time']:
              # It's weird that the pawn is getting placed in me, but
              # I'll do my best..
              pawn.pos = self.pos_along(0)
              return
          elif (
                  pawn.thing['next_arrival_time'] and
                  self._turn >= pawn.thing['next_arrival_time']
          ):
              pawn.pos = self.pos_along(1)
              return
          try:
              pawn.pos = self.pos_along(
                  (
                      self._turn -
                      pawn.thing['arrival_time']
                  ) / (
                      pawn.thing['next_arrival_time'] -
                      pawn.thing['arrival_time']
                  )
              )
          except (TypeError, ZeroDivisionError):
              pawn.pos = self.pos_along(0)