Come posso riesportare moduli importati qualificati in haskell? È possibile?Come posso riesportare moduli importati qualificati?
Esempio: Ho due file. Il file Utils.hs
con il codice:
module Utils (...) where
import qualified Data.Map as Map
e il file main.hs
:
import Utils
main = putStrLn $ show $ Map.fromList [(1,2),(3,4)]
Cosa devo mettere al posto del ...
nel file Utils.hs
in modo che il file di cui sopra compila e stampa fromList [(1,2),(3,4)]
al uscita standard?
Obiettivo: Dopo aver importato Utils.hs
in un altro file via import Utils
voglio avere accesso alle funzioni e tipi di Data.Map
con il codice Map.<function or data name>
, vale a dire in modo che con la scrittura import Utils
non devo scrivere import qualified Data.Map as Map
più. È possibile?
Nota: C'è una domanda simile a Haskell re-export module in addition to everything defined within module. Sfortunatamente la risposta non aiuta in questa situazione.
Quello che ho provato finora: Il seguente codice di
module Utils (module Map) where
import qualified Data.Map as Map
compila, ma ottengo l'errore main.hs:3:26: Not in scope: `Map.fromList'
se provo a compilare main.hs
.
Export moduli qualificati è impossibile: http://stackoverflow.com/questions/3207647/ghc-refuses-to- moduli qualificati per l'esportazione – user2407038
@ user2407038: Grazie per il collegamento. Purtroppo non sono riuscito a trovare la soluzione (vedi la mia domanda estesa). Puoi fornire un esempio in esecuzione? –