2013-07-07 11 views
7

Sto scrivendo un modulo che ha un numero piuttosto elevato di funzioni che è necessario esportare. Anche questo modulo ha un gran numero di costruzioni di dati.Haskell che esporta un gran numero di funzioni

Supponiamo mio modulo contiene quanto segue:

module MyUtils (A(..), B(..),C(..),D(..),f1,f2,f3,f4,f5,f6) where 
--Data constructors 
data A = ... 
data B = ... 
data C = ... 
data D = ... 
--functions 
f1 :: A -> B 
f2 :: A -> B -> C 
f3 :: A -> B -> D 
f4 :: A -> B -> A 
f5 :: A -> B -> B 
f6 :: A -> B 

vidi la fonte Data.Map here Essa mostra si esporta un gran numero di funzioni in una grande lista.

ma se voglio esportare tutto, può essere fatto con un metodo ancora di scelta rapida, qualcosa di simile,

module MyUtils (..) where 

?

risposta

11

Sì, basta lasciare fuori il (..) interamente. Per impostazione predefinita, tutti i nomi vengono esportati.

module MyUtiles where 
... 

Se ci sono un certo numero di grandi dimensioni di funzioni che si desidera esportare a fianco di un certo numero piccola di funzioni che si desidera nascondere, è meglio mettere quelle nascoste in un altro modulo e importarlo.

Problemi correlati