Ho un modulo Haskell e mi piacerebbe che esportasse tutti gli oggetti dichiarati nel suo file ad eccezione di una funzione specifica local_func
.Haskell: nascondi le funzioni specifiche nelle esportazioni del modulo?
Esiste un modo più semplice per raggiungere questo obiettivo se non scrivendo una lista di esportazione elencando esplicitamente tutte le altre dichiarazioni (e mantenendo attentamente questo elenco aggiornato per l'eternità)?
In altre parole, mi piacerebbe un analogo di import MyModule hiding (local_func)
, ma specificato nel modulo di esportazione piuttosto che al momento dell'importazione.
Ottimo consiglio: "che in alcuni casi - che probabilmente non prevedi! - rende più facile per gli utenti modificare le cose nel tuo modulo": Sì! Questo è un problema comune nella mia esperienza, e quando un modulo impacchettato in cabala è stato "bloccato" con una lista di esportazione eccessivamente restrittiva, non conosco soluzioni migliori rispetto alla modifica e alla reinstallazione del pacchetto, che è fastidioso. – ntc2