Есть ли простой способ загрузить дополнительные пакеты в ghci при вызове через запятую?

cabal repl весьма полезен для отладки библиотеки, однако ghci будет иметь все скрытые пакеты, которые не являются зависимостями пакета cabal. Хотя это, безусловно, хорошо для cabal build, для repl это означает, что я не могу загрузить что-то из несвязанного пакета для быстрого теста.

Я могу получить доступ к любому пакету, выпуская :set -package, но это выгрузит все модули из pacakge, над которым я работаю, побеждая точку cabal repl.

Какой хороший способ просто загружать пакеты, которые я установил, но не хочу, чтобы они зависели от моей библиотеки?

Ответы

Ответ 1

cabal repl --ghc-option='-package xyz'

Это загрузит пакет, который вы вызываете cabal repl, и пакет xyz.

Для этого после факта, т.е. когда вы уже находитесь в REPL и хотите загрузить дополнительный вспомогательный модуль из другого пакета:

GHCi> :set -package xyz
GHCi> :m +XYZ.Module.You.Suddenly.Need

Ответ 2

Один из способов (но не оптимальный) - это изменить ваш файл cabal и добавить флаг manual/false extra_dependency, добавить зависимости, которые вам нужны, в условном разделе build-depends.

Проблема в том, что вам нужно вручную отредактировать файл кабала, который вы хотите получить в библиотеке hidden, но, по крайней мере, ваша библиотека официально не зависит от этих библиотек.

В противном случае вы можете установить путь к модулю для поиска в кеш-песочнице.