2012-03-24 39 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