Dois módulos, ambos exportando o mesmo nome

Existem dois pacotes que eu quero usar:CorpusLoaders.jleWordNet.jl

Exportações CorpusLoaders.SemCorsensekey(::SenseTaggedWord)Exportações do WordNetsensekey(::DB, ::Synset, ::Lemma)

Eu quero usar os doissensekey métodos.

Por exemplo

para alguma lista mista de itens:mixedlist::Vector{Union{Tuple{SenseTaggedWord},Tuple{DB, Synset,Lemma}}. Ou seja, os itens da lista são uma mistura de 1-tuplas deSenseTaggedWorde 3 tuplas deDB, SynseteLemma.

for item in mixedlist
    println(sensekey(item...)
end

Deveria trabalhar. Este exemplo é um pouco ridículo, porque eu os misturaria assim. Mas, espero que sirva para ilustrar o problema no caso geral.

Tentandousing CorpusLoaders.SemCor, WordNet para trazer os dois resultados emWARNING: both WordNet and Semcor export "sensekey"; uses of it in module Main must be qualified.

Importando manualmente os dois:import CorpusLoaders.SemCor.sensekey; import WordNet.sensekey resulta emWARNING: ignoring conflicting import of Semcor.sensekey into Main

O que pode ser feito? Eu quero os dois, e eles realmente não entram em conflito, devido ao envio múltiplo.

Como CorpusLoaders.jl é um pacote que estou escrevendo, tenho mais algumas opções, pois eu poderia fazer meu CorpusLoaders.jl depender do WordNet.jl. Se fizesse isso, poderia dizer em CorpusLoaders.jl

 import WordNet
 function WordNet.sensekey(s::SenseTaggedWord)...

e isso faria os dois funcionarem. Mas isso significaria exigir o WordNet como uma dependência dos CorpusLoaders.

E eu quero saber como resolver o problema para um consumidor dos pacotes - não como o criador dos pacotes.

questionAnswers(3)

yourAnswerToTheQuestion