let esummary_url ?retstart ?retmax db ids =
if List.length ids > 200
then raise (Invalid_argument "Entrez.esummary_url: cannot fetch more than 200 summaries") ;
summary_base_url ^ "?" ^ parameters Option.([
Some ("db", id_of_database db) ;
Some ("id", String.concat ~sep:"," ids) ;
Some ("version", "2.0") ;
map ~f:(fun i -> "retstart", string_of_int i) retstart ;
map ~f:(fun i -> "retmax", string_of_int i) retmax ;
])