2017-12-10 1 views
0

여기에 유형을 정의하고 makeLenses을 사용하여 렌즈를 생성하는 간단한 코드가 있습니다.하스켈 : 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'' 
이것은 오류가 발생

: 나는 SO에이 다소 관련 문제를 발견

Data constructor not in scope: SearchRequest'' :: template-haskell-2.11.1.0:Language.Haskell.TH.Syntax.Name • Perhaps you meant one of these: ‘SearchRequest’ (line 20), variable ‘searchRequest’ (line 39)

,하지만 그들은 선언 순서에 관련된 모든 종류의 포함하기 때문에, 여기에 적용하지 않는 것 SearchRequest에 이미 정의되어 있습니다.

이 원인을 어떤 아이디어가?

답변

2

''SearchRequest이 아닌 SearchRequest''입니다.

+0

하하 외. 글쎄, 그건 당황 스럽네 ... 빠른 응답 주셔서 감사합니다, 시간 제한이 만료되면 동의합니다. – theduke