The case of two programs having the same functionality but different implementations is handled via "alternatives" or the "Conflicts" mechanism.
"SZ Lin (林上智)" <szlin@cs.nctu.edu.tw> writes:
> Although these packages are not API-compatible, they are using the
> same installation path and file name; therefore, I think "Conflict:"
> section is needed.
Note that Policy explicitly forbids using "Conflicts" in this case, see
the first paragraph in [1].
[1] <https://www.debian.org/doc/debian-policy/ch-files.html#s- >binaries
Ansgar