Is this by design?
a.nim (where converter is declared)
converter toInt*(x: uint8): int = int(x)
proc `$`*(x: uint8): string {.raises: [].} =
result.addInt(int(x))
b.nim (intermediate module that imports a.nim)
import a
c.nim
import b
echo 10'u8
c.nim errors with import b because $-proc is not imported, but converter somehow is, through the a → b → c "chain".