2017-12-10 5 views
0

Ich habe diesen einfachen Code hier, um einen Typ zu definieren und makeLenses zu verwenden, um Linsen zu erzeugen.Haskell: makeLenses - Datenkonstruktor nicht im Gültigkeitsbereich

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'' 

Diese im Fehler führt:

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)

ich zwei etwas damit verbundenen Probleme auf SO gefunden haben, aber sie sind auf der Reihenfolge der Deklaration verwandt und scheinen hier nicht gelten, da alle Arten enthalten in SearchRequest sind bereits definiert.

Irgendwelche Ideen, was ist der Grund dafür?

Antwort

2

Es ist ''SearchRequest, nicht SearchRequest''.

+0

Haha autsch. Nun, das ist peinlich ... Danke für die schnelle Antwort, ich werde akzeptieren, sobald das Zeitlimit abgelaufen ist. – theduke

Verwandte Themen