Haskell: не удалось найти модуль 'Network.HTTP' - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь написать простой скрипт, который принимает в качестве входных данных URL (или набор URL-адресов) и в качестве выходных данных загружает содержимое этой страницы в файл (в частности, я пытаюсь загрузить сотни файлов JSON, которыев конечном счете, я хочу использовать разные файлы JSON).

В файле download.hs у меня есть import "HTTP" Network.HTTP.

Когда я запускаю: $ ghc -o download download.hs

Я получаю следующую ошибку:

download.hs:24:1: error:
    Could not find module ‘Network.HTTP’
    Perhaps you meant Network.TLS (needs flag -package-key tls-1.5.2)
   |
24 | import "HTTP" Network.HTTP
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^

Моя версия GHC:

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 8.6.5

Я такжеполучить такие ошибки, как:

download.hs:22:1: error:
    Could not load module ‘Control.Concurrent.Async’
    It is a member of the hidden package ‘async-2.2.2’.
    You can run ‘:set -package async’ to expose it.
    (Note: this unloads all the modules in the current scope.)
   |
22 | import "async" Control.Concurrent.Async (mapConcurrently)
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Я думаю, что между версиями ghc произошли серьезные изменения, и примеры, которые я нахожу в Интернете для начала, могут быть устаревшими.

Были ли какие-либо указания на выполнение, начатые с Haskell, и особенно простые способы загрузки и разметки файлов JSON в Haskell?

Я следовал этому примеру: Запуск параллельной загрузки URL-адресов в Haskell , вот где я получил код, который сейчас ошибается.

...