简体   繁体   English

Haskell非法衍生品泛型

[英]Haskell Illegal deriving item Generic

{-# LANGUAGE DataKinds         #-}
{-# LANGUAGE DeriveGeneric     #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators     #-}

import qualified Data.ByteString.Lazy    as BL
import           Data.Csv                (DefaultOrdered, FromRecord,
                                          ToNamedRecord, ToRecord)
import           Data.Generics
import           Data.Proxy
import qualified Data.Text               as T
import           Network.HTTP.Client     (newManager)
import           Network.HTTP.Client.TLS (tlsManagerSettings)
import           Servant.API
import           Servant.Client
import           Servant.CSV.Cassava
import           System.Environment

data Cata = Cata
  {
    csvDate       :: String,
    csvOpen       :: String,
    csvHigh       :: String,
    csvLow        :: String,
    csvClose      :: String,
    csvVolume     :: String,
    csvExDividend :: String,
    csvSplitRatio :: String,
    csvAdjOpen    :: String,
    csvAdjHigh    :: String,
    csvAdjLow     :: String,
    csvAdjClose   :: String,
    csvAdjVolume  :: String
  } deriving (Show, Generic)

instance DefaultOrdered Cata
instance FromRecord Cata
instance ToNamedRecord Cata
instance ToRecord Cata

I compile the above code and get the following error: why? 我编译上面的代码并得到以下错误:为什么?

$ stack ghc servantcsv.hs
[1 of 1] Compiling Main             ( servantcsv.hs, servantcsv.o )

servantcsv.hs:34:21: error:
    • Illegal deriving item ‘Generic’
    • In the data declaration for ‘Cata’
   |
34 |   } deriving (Show, Generic)
   |                     ^^^^^^^

GHC Version: ghc-8.4.3 GHC版本: ghc-8.4.3

You want to import GHC.Generics not Data.Generics . 您要导入GHC.Generics而不是Data.Generics What you have imported does have a type Generic but it isn't a class: 您导入的内容确实具有Generic类型,但不是类:

type Generic c = forall a. Data a => a -> c a

Certainly that can't be part of a "deriving" clause. 当然,这不能成为“派生”子句的一部分。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM