let load conf =
  match cache_filename conf with
    | Some fn ->
        begin
          try
            let chn = open_in fn in
            let cache : cache =
              try
                Marshal.from_channel chn
              with e ->
                default
            in
              close_in chn;
              cache
          with _ ->
            default
        end

    | None ->
        default