Haskell: Jak używać attoparsec do odczytu zagnieżdżonej listy z ByteString

Mam plik tekstowy (~ 300 MB duży) z zagnieżdżoną listą, podobny do tego:

[[4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 87, 92, 93, 94, 95], [4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 87, 92, 93, 94],[4, 9, 11, 28, 30, 45, 55, 58, 61, 62, 63, 69, 74, 76, 77, 82, 85, 87, 92, 93, 94, 95]]

Oto mój program do odczytu pliku w haskellInteger lista:

import qualified Data.ByteString as ByteStr

main :: IO ()

-- HOW to do the same thing but using ByteStr.readFile for file access?
main = do fContents <- readFile filePath 
          let numList = readNums fContents
          putStrLn (show nums)

Działa to dla małych plików tekstowych, ale chcę użyćByteString szybko odczytać plik. Dowiedziałem się, że nie maread funkcja dla ByteString, zamiast tego powinieneś napisać własny parser w attoparsec, ponieważ obsługuje parsowanie ByteStrings.

Jak mogę korzystaćattoparsec analizować zagnieżdżoną listę?

questionAnswers(1)

yourAnswerToTheQuestion