Я поддерживаю пакет для взлома, lrucache. Недавно я получил запрос функции для добавления экземпляров для Binary
и NFData
. Обе эти вещи полезны, и в принципе у меня нет проблем с этими примерами.
Однако оба из них представляют новые зависимости пакетов, и я хочу, чтобы список зависимостей пакета был как можно меньше. Есть ли разумный способ справиться с этим? Вероятно, существует более двадцати различных пакетов, которые предоставляют полезные классы типов, которые могут реализовывать структуры данных в lrucache
, и получить некоторую выгоду.
Очевидно, что добавление всех из них в качестве зависимостей является не стартером. Но что еще можно сделать?
Я могу добавить флаги в lrucache.cabal, которые позволят скомпилировать различные экземпляры. Это работает с точки зрения минимального списка зависимостей, за исключением случаев, когда вы этого хотите. Но это ужасно в реальном мире, потому что вы не можете указывать флаги сборки в разделах, зависящих от сборки. Таким образом, вы можете зависеть от пакета с определенным флагом, но не указывать эту зависимость. Это быстро сводится к почти бесполезности.
Я могу создать кучу пакетов сиротских экземпляров. Это имеет то преимущество, что позволяет определять зависимости от этих экземпляров в разделе, зависящем от сборки. Его основным недостатком является добавление тонны дополнительных пакетов для взлома и необходимость их сохранения в виде отдельных пакетов.
Что еще я могу сделать? Какая правильная вещь?