2016-06-03 1 views
1

Я использую -interactive-print для печати текущего времени после каждой оцениваемой в ghci:Как сохранить -interactive-print после: загрузить или: перезагрузить в ghci?

(от ~/.ghci):

import qualified Text.Show.TimePrint 
:set -interactive-print=Text.Show.TimePrint.timePrint 

Он работает, пока я не пытаюсь :load файл:

$ ghci 
GHCi, version 7.10.3: http://www.haskell.org/ghc/ :? for help 
Prelude Text.Show.TimePrint> 1+2 
3 
20:08:42 
Prelude Text.Show.TimePrint> :l file.hs 
[1 of 1] Compiling Main    (file.hs, interpreted) 
Ok, modules loaded: Main. 
*Main Text.Show.TimePrint> 1+2 
3 

Я видел этот билет здесь, который описывает проблему: https://ghc.haskell.org/trac/ghc/ticket/11159; предлагаемое решение состоит в том, чтобы поместить его в «зарегистрированный пакет», который я точно не понимаю. Я положил его в Text.Show, это не совсем верно? Благодарю.

(Код для пакета, установленного сделать TimePrint :)

module Text.Show.TimePrint (timePrint) where 

import System.IO 
import Data.Time 

getTime :: IO String 
getTime = do 
    now <- getCurrentTime 
    return (formatTime defaultTimeLocale "%T" now) 

timePrint :: Show a => a -> IO() 
timePrint a = do 
    s <- getTime 
    putStrLn $ show a ++ "\n" ++ s 
+0

Что делает 'ghc-pkg find-module Text.Show.TimePrint' сказать? –

ответ

1

Вы используете GHC 7.10.3; билет, который вы связываете, говорит, что это исправлено после 7.10.3. Поэтому вам нужно будет обновить свой GHC до чего-то нового.