2017-12-19 3 views
1
module Hart 
    (module Hart 
) 
where 

import Control.Monad.Trans.Reader (runReaderT, ReaderT, ask) 
import Control.Monad.Trans (lift) 

Ich habe derzeit die oben genannten definiert. Wie kann ich nur die ask Funktion von Control.Monad.Trans.Reader zusätzlich zum Hart Modul exportieren?Wie exportiere ich eine Funktion von einem importierten Modul?

Ich dachte, ich könnte die unten tun - aber es erzeugt einen Fehler:

module Hart 
    (module Hart 
    , module Control.Monad.Trans.Reader (ask) 
) where 
+2

Um, 'Modul Hart (Modul Hart , fragen )'? – leftaroundabout

+0

Danke, das funktioniert! –

Antwort

1

Wie @leftaroundabout in den Kommentaren genannten Funktionen wieder auszuführen, schließen Sie einfach diese Funktion in Ihrer Exportliste:

module Hart 
    (module Hart 
    , ask 
) where 
... 
import Control.Monad.Trans.Reader (ask) 

Dies funktioniert auch für qualifizierte Importe mit der Einschränkung, dass der Namespace nicht im Export erfasst wird.

module Hart 
    (module Hart 
    , ask 
    , T.null 
) where 
... 
import Control.Monad.Trans.Reader (ask) 
import qualified Data.Text as T 

Und in einer anderen Datei:

module Other where 

    import Hart (ask, null) 
Verwandte Themen