public boolean equals (Object o) {
        if (!(o instanceof Argument))
            return false;
        Argument a = (Argument)o;
        return 
            ((a.arg_label == arg_label) ||
             (a.arg_label != null && a.arg_label.equals(arg_label))) &&
            ((a.mod_label == mod_label) ||
             (a.mod_label != null && a.mod_label.equals(mod_label))) &&
            ((a.location == location) ||
             (a.location != null && a.location.equals(location)));
    }