Commit e8a2de66 authored by Andrei Barbu's avatar Andrei Barbu

updates for the latest aeson and ghc exts

parent 709e857c
...@@ -37,10 +37,12 @@ data HoogleResult = SearchResult HoogleResponse ...@@ -37,10 +37,12 @@ data HoogleResult = SearchResult HoogleResponse
| NoResult String | NoResult String
deriving Show deriving Show
instance FromJSON [HoogleResponse] where data HoogleResponseList = HoogleResponseList [HoogleResponse]
instance FromJSON HoogleResponseList where
parseJSON (Object obj) = do parseJSON (Object obj) = do
results <- obj .: "results" results <- obj .: "results"
mapM parseJSON results HoogleResponseList <$> mapM parseJSON results
parseJSON _ = fail "Expected object with 'results' field." parseJSON _ = fail "Expected object with 'results' field."
...@@ -99,7 +101,7 @@ search string = do ...@@ -99,7 +101,7 @@ search string = do
case eitherDecode $ LBS.fromStrict $ CBS.pack json of case eitherDecode $ LBS.fromStrict $ CBS.pack json of
Left err -> [NoResult err] Left err -> [NoResult err]
Right results -> Right results ->
case map SearchResult results of case map SearchResult $ (\(HoogleResponseList l) -> l) results of
[] -> [NoResult "no matching identifiers found."] [] -> [NoResult "no matching identifiers found."]
res -> res res -> res
......
...@@ -17,11 +17,11 @@ import Data.Monoid ...@@ -17,11 +17,11 @@ import Data.Monoid
import Data.Maybe (mapMaybe) import Data.Maybe (mapMaybe)
import System.IO.Unsafe (unsafePerformIO) import System.IO.Unsafe (unsafePerformIO)
import Language.Haskell.Exts.Annotated.Syntax hiding (Module) import Language.Haskell.Exts.Syntax hiding (Module)
import qualified Language.Haskell.Exts.Annotated.Syntax as SrcExts import qualified Language.Haskell.Exts.Syntax as SrcExts
import Language.Haskell.Exts.Annotated (parseFileContentsWithMode) import Language.Haskell.Exts (parseFileContentsWithMode)
import Language.Haskell.Exts.Annotated.Build (doE) import Language.Haskell.Exts.Build (doE)
import Language.Haskell.Exts.Annotated hiding (Module) import Language.Haskell.Exts hiding (Module)
import Language.Haskell.Exts.SrcLoc import Language.Haskell.Exts.SrcLoc
import Language.Haskell.HLint as HLint import Language.Haskell.HLint as HLint
...@@ -149,7 +149,7 @@ createModule mode (Located line block) = ...@@ -149,7 +149,7 @@ createModule mode (Located line block) =
decl = SpliceDecl loc expr decl = SpliceDecl loc expr
expr :: Exp SrcSpanInfo expr :: Exp SrcSpanInfo
expr = doE loc [stmt, ret] expr = Do loc [stmt, ret]
stmt :: Stmt SrcSpanInfo stmt :: Stmt SrcSpanInfo
ParseOk stmt = parseStmtWithMode mode stmtStr ParseOk stmt = parseStmtWithMode mode stmtStr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment