2012-03-24 10 views
1

を読んでも問題を示す小さなプログラムです:ハスケル:ここピコ

import Data.Fixed 

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

私はFixed.hsでライブラリGHCのソースコードを参照してください - インスタンスが読むためにそこにある(いくつかのコードをコピー):

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

はGHC 7.2ベース4.4.0.0、以降読み取りインスタンスを有します。あなたはおそらく古いバージョンを持っています。

+0

正確に!私は7.0.2がインストールされている間に7.2.2のソースを見た。 – demi