哈斯克尔:读Pico

时间:2012-03-24 09:44:39

标签: haskell

这是一个显示问题的小程序:

import Data.Fixed

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

我在Fixed.hs中看到了库GHC源代码 - 有一个Read实例(复制一些代码):

type Pico = Fixed E12

data E12 = E12

instance HasResolution E12 where
    resolution _ = 1000000000000

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

我的推理有什么问题,为什么编译器没有看到Pico是Read的实例?

1 个答案:

答案 0 :(得分:5)

Fixed有自基础4.4.0.0以来的Read实例,即GHC 7.2。你可能有一个旧版本。