docs: def point_before_card(self, card, x, y):
          """Return whether ``(x, y)`` is somewhere before ``card``, given how I
          know cards to be arranged.
  
          If the cards are being stacked down and to the right, that
          means I'm testing whether ``(x, y)`` is above or to the left
          of the card.
  
          """
          def ycmp():
              if self.card_y_hint_step == 0:
                  return False
              elif self.card_y_hint_step > 0:
                  # stacking upward
                  return y < card.y
              else:
                  # stacking downward
                  return y > card.top
          if self.card_x_hint_step > 0:
              # stacking to the right
              if x < card.x:
                  return True
              return ycmp()
          elif self.card_x_hint_step == 0:
              return ycmp()
          else:
              # stacking to the left
              if x > card.right:
                  return True
              return ycmp()