Cet exemple utilisait sans-doute une vieille version de Ghcid. Voici ce que la doc actuelle dit :
1 2 3
| startGhci :: String -> Maybe FilePath -> (Stream -> String -> IO ()) -> IO (Ghci, [Load])
Start GHCi, returning a function to perform further operation, as well as the result of the initial loading. If you do not call stopGhci then the underlying process may be leaked. The callback will be given the messages produced while loading, useful if invoking something like "cabal repl" which might compile dependent packages before really loading. |
Le "callback" est la fonction passée comme troisième argument, ce terme est employé parce que cette fonction est passée pour pouvoir être rappelée ("callbackée...") par la suite durant l'exécution de Ghci. C'est un terme standard pour une fonction passée en argument dans cet objectif. Ici on te dit que cette fonction sera appelée lorsque Ghci essaye de charger un module et on lui donnera Stream (soit Stdout, soit Stderr selon que le message a été émis normalement ou comme une erreur) et une String contenant le message du chargement. Donc cette fonction est là au cas où tu souhaiterais réagir de façon personnalisée à un problème au chargement (ou simplement indiquer que tels et tels modules ont été chargés).
Autrement dit pour l'instant tu peux probablement ignorer ces messages sans problème et simplement fournir une fonction qui ne fait rien avec eux :
startGhci "ghci" (Just ".") (\_ _-> return ())
Partager