2012-03-24 38 views
1

這裏是顯示問題的小程序:哈斯克爾:閱讀微微

import Data.Fixed 

main = do 
    print x 
    where 
    x :: Pico 
    x = read "12" -- error: no instance for 'Read Pico' 

我看到庫GHC源代碼Fixed.hs - 有實例讀取(複製一些代碼):

type Pico = Fixed E12 

data E12 = E12 

instance HasResolution E12 where 
    resolution _ = 1000000000000 

instance (HasResolution a) => Read (Fixed a) where 
    readsPrec _ = readsFixed 

我的推理出了什麼問題,爲什麼編譯器沒有看到Pico是Read的實例?

回答

5

修復了自基本4.4.0.0以來的Read實例,它是GHC 7.2。你可能有一箇舊版本。

+0

正是!我在安裝7.0.4時看到了7.2.2源代碼。 – demi 2012-03-24 10:22:58