После обновления до Ubuntu 13.10 один из моих кодов Haskell не удается скомпилировать. Следующий код компилируется без проблем, по (по крайней мере) GHC-7.0.x, но терпит неудачу при GHC-7.6.2 (с неупорядоченным-контейнеров-0.2.2.1):Haskell GHC-7.6.2 Получение данных и данных с помощью HashMap
{-# LANGUAGE OverloadedStrings, DeriveDataTypeable #-}
import Data.Typeable
import Data.Data
import qualified Data.HashMap.Strict as HM
data Bar = Bar { bar :: String } deriving(Data, Typeable)
data Foo = Foo { foo :: HM.HashMap String Bar } deriving(Data, Typeable)
ошибки я получаю:
deriving-hm-fail.hs:7:58:
No instance for (Data (HM.HashMap String Bar))
arising from the 'deriving' clause of a data type declaration
Possible fix:
add an instance declaration for (Data (HM.HashMap String Bar))
or use a standalone 'deriving instance' declaration,
so you can specify the instance context yourself
When deriving the instance for (Data Foo)
Data.HashMap.Strict имеет объявление экземпляра: (Data k, Data v, Eq k, Hashable k) => Данные (HashMap kv). Поскольку Bar является экземпляром Data, это должно работать, или я чего-то не хватает?