method follow_link ?text ?text_regex ?url ?url_regex ?url_abs ?url_abs_regex
    ?name ?name_regex ?tag ?tag_regex ?n () =
    let args = ref [] in
    let add name f = function
      | None -> ()
      | Some p -> args := sv_of_string name :: f p :: !args
    in
    add "text" sv_of_string text;
    add "text_regex" sv_of_string text_regex;
    add "url" sv_of_string url;
    add "url_regex" sv_of_string url_regex;
    add "url_abs" sv_of_string url_abs;
    add "url_abs_regex" sv_of_string url_abs_regex;
    add "name" sv_of_string name;
    add "name_regex" sv_of_string name_regex;
    add "tag" sv_of_string tag;
    add "tag_regex" sv_of_string tag_regex;
    add "n" sv_of_int n;
    call_method_void sv "follow_link" !args