Rule *curr = rules;  // want to iterate to end of rules
while (curr->next_rule != NULL) {
    curr = curr->next_rule;
}  // curr->next_rule == NULL
curr->next_rule = new_rule;  // insert new rule to end of rules