这是一个显示问题的小程序:
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的实例?
答案 0 :(得分:5)
Fixed有自基础4.4.0.0以来的Read实例,即GHC 7.2。你可能有一个旧版本。