Здравствуйте, я новичок в хаскеле! Задача в следующем: я получаю список из json следующим образом.
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
import Data.Aeson
import qualified Data.ByteString.Lazy as B
import GHC.Generics
data DayHealthItem = DayHealthItem { summary_date :: String,
period_id :: Int,
is_longest :: Int,
timezone :: Int
} deriving (Generic, Show)
instance FromJSON DayHealthItem
main = do
input <- B.readFile "mock/data.json"
let maybeDecodedJSON = decode input :: Maybe [DayHealthItem]
case maybeDecodedJSON of
Nothing -> error "error parsing JSON"
Just decodedJSON -> (putStrLn.show) decodedJSON
Вопрос в том, как мне правильно обьявить типы, чтобы потом с этими данными управляться, То есть, применять к ним все функции списков, потому что если я в последней строке делаю что-то типа:
...
Just decodedJSON -> (putStrLn.head) decodedJSON
то получаю ошибку :
Couldn't match type ‘DayHealthItem’ with ‘[Char]’
Expected type: [String]
Actual type: [DayHealthItem]