code: def add_rule(self, start_col, start_row, end_col, end_row,
                   width=0.5, color=(0,0,0)):
          
          self.rules.append(
              (start_col, start_row, end_col, end_row, width, color)
              )
docs: Adds a rule to the grid. The row and column numbers are
          those on the top left of the corresponding cell in the
          grid. So if the grid is 10x10, then the right hand edge of the
          grid will be column 10, and the bottom will be column 10. In
          other words there is one more rule-row and column than there
          are cell rows and columns.