let string_of_spec_options = fun opts ->
    let string_of_spec_options_db = fun db options ->
      Printf.sprintf "%s = [%s]"  db
        (Dbf_misc.join ~sep:", " ~to_string:(fun x -> x) options)
    in
    let strings =
      Dbf_misc.StringMap.fold
        (fun db options strings ->
           (string_of_spec_options_db db options) :: strings)
        opts
        []
    in
      Dbf_misc.join ~sep:", " ~to_string:(fun x -> x)
        (List.rev strings)