This allows sharing tags because they now have the same type. All the modules that don't depend on the Monad.t type moved to this new library.
test plan:
Check that the Tag module is shared as follows:
$ dune utop
...
utop # Testo.Tag.declare "a";;
- : Testo.Tag.t = "a"
utop # Testo_lwt.Tag.declare "a";;
Exception:
Internal error in the Testo library at File "util/Tag.ml", line 44, characters 23-30: Invalid argument: Testo.declare_tag: tag "a" was declared multiple times.
Each tag must be declared exactly once to avoid accidental conflicts.
PR checklist:
[x] Purpose of the code is evident to future readers
[x] Tests are included or a PR comment includes a reproducible test plan
[x] Documentation is up-to-date
[ ] A changelog entry was added to CHANGES.md for any user-facing change
This allows sharing tags because they now have the same type. All the modules that don't depend on the
Monad.t
type moved to this new library.test plan: Check that the
Tag
module is shared as follows:PR checklist:
CHANGES.md
for any user-facing changeCheck out
CONTRIBUTING.md
for more details.