Opam uninstall fails to clean up empty directories

I’ve stumbled upon a small issue while toying with an opam package for managing a Frama-C plug-in. In essence, such a plug-in is supposed to install a META file in a subdirectory of Frama-C’s own lib/plugins directory, so that it is loaded automatically when the main tool is launched. With the following setup, everything is fine:

dune-project :

(lang dune 3.8)

(name frama-c-empty)

(generate_opam_files true)

(using dune_site 0.1)

 (name frama-c-empty)


  (name empty)
  (public_name frama-c-empty)

  (name empty) (libraries frama-c-empty) (site (frama-c plugins))


name: "frama-c-empty"


let () = print_endline "Hello, World"

With a fresh opam switch having frama-c.27.0 installed, I can do

dune build @install
dune exec -- frama-c # prints Hello, World as expected
dune install
frama-c # also prints Hello, World
dune uninstall
frama-c # prints nothing

however, if i try to install the plug-in as an opam package, things go wrong when I uninstall it:

opam install .
frama-c # prints Hello, World
opam uninstall frama-c-empty
frama-c # crashes, claiming that The plugin "empty" can't be found

The issue seems to be that opam uninstall in fact leaves the empty directory in lib/frama-c/plugins. Admittedly, Frama-C could check whether this directory contains a proper META file, but shouldn’t opam remove it during uninstallation?