Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell非法派生项泛型_Haskell - Fatal编程技术网

Haskell非法派生项泛型

Haskell非法派生项泛型,haskell,Haskell,我编译了上面的代码,得到了以下错误:为什么 {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeOperators #-} import qualified Data.ByteString.Lazy as BL import Data.Csv

我编译了上面的代码,得到了以下错误:为什么

{-# 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

GHC版本:
GHC-8.4.3

您想要导入
GHC.Generics
而不是
数据.Generics
。您导入的内容确实有一个类型
Generic
,但它不是一个类:

$ 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)
   |                     ^^^^^^^
当然,这不能成为“派生”条款的一部分

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