J'essaye d'exporter juste un sous-ensemble de noms à partir d'un module Haskell, mais ghci me permet heureusement d'accéder même aux noms cachés.Modules Haskell: noms cachés et ghci
module Hiding (shown, calc) where
calc = shown * hidden
shown :: Int
shown = 3
hidden :: Int
hidden = 2
Mais si vous essayez ceci dans ghci je reçois:
Prelude> :l Hiding.hs
[1 of 1] Compiling Hiding (Hiding.hs, interpreted)
Ok, modules loaded: Hiding.
*Hiding> hidden
2
Qu'est-ce que je fais mal?
(Edit: pour ce que ça vaut, j'utilise ghci 6.12.3 Arch Linux)
Merci, voilà. Je peux le contourner comme ceci: Prelude>: l Hiding.hs [1 of 1] Compilation de dissimulation (Hiding.hs, interprété) Ok, modules chargés: Masquage. * Masquage>: m -Hiding >: m + Masquage Masquage> bien que cela soit assez maladroit – oggy
@oggy-ghci ne le fera que pour les modules interprétés. Si vous compilez Hiding.hs en premier, ghci peut importer le module à partir du fichier objet et seules les fonctions exportées seront visibles. –