-> IO [File]
parseFiles :: [File] -> [Either String [Data]]
outputErrors :: [Either String [Data]] -> [Data]
analyseData :: [Data] -> [Analysis]
writeDataToCsv :: [Analysis] -> CSV
analyseSourceCode :: FilePath -> IO CSV
analyseSourceCode path =
writeDataToCsv
. analyseData
. outputErrors
. parseFiles
<$> readFiles path
Но я бы хотел поменять тип на outputErrors :: [Either String [Data]] -> IO [Data], чтобы outputErrors выводил Left String, а возвращал Right [Data]. В таком случае как мне это завернуть в analyseSourceCode? Пробовал заменить . на <$>, но это, конечно, не завелось)
попробуйте переписать в do-нотации
Обсуждают сегодня