I just upgraded tls and got a spurious "make inconsistent assumptions over interface Tls" error. It goes away after dune clean.
To reproduce, create these files:
(library (name lib) (modules lib) (libraries tls))
(executable (name app) (modules app) (libraries lib))
(* lib.ml *)
let main () = ()
let _ = Tls.Engine.server
(* lib.mli *)
val main : unit -> unit
And run the following steps:
opam install --yes tls=0.9.3
dune build app.exe
opam install --yes tls=0.10.1
dune build app.exe
Tested on dune 1.7.3.