the*_*uke 0 haskell template-haskell
我在这里有这个简单的代码来定义类型并用于makeLenses生成镜头。
module Api.Jira.Types.Search
(
SearchRequest(..)
) where
import GHC.Generics
import qualified Data.Text as T
import Data.Aeson (FromJSON, ToJSON)
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
data SearchRequest = SearchRequest
{ _jql :: T.Text
, _startAt :: Maybe Int
, _maxResults :: Maybe Int
, _fields :: Maybe [T.Text]
, _expand :: Maybe [T.Text]
, _properties :: Maybe [T.Text]
} deriving (Show, Generic)
instance ToJSON SearchRequest where
toJSON = genericToJSON defaultOptions {
fieldLabelModifier = drop 1 }
instance FromJSON SearchRequest where
parseJSON = genericParseJSON defaultOptions {
fieldLabelModifier = drop 1 }
makeLenses SearchRequest''
Run Code Online (Sandbox Code Playgroud)
这导致错误:
不在范围内的数据构造函数:SearchRequest'' :: template-haskell-2.11.1.0:Language.Haskell.TH.Syntax.Name • 也许您的意思是其中之一:'SearchRequest'(第 20 行),变量 'searchRequest'(行39)
我在 SO 上发现了两个有些相关的问题,但它们与声明顺序有关,似乎不适用于此处,因为其中包含的所有类型SearchRequest都已定义。
任何想法是什么导致了这种情况?