Что такое идиоматическое решение Haskell для инъекции зависимостей?
Например, предположим, что у вас есть интерфейс frobby
, и вам нужно передать экземпляр, соответствующий frobby
вокруг (могут быть несколько разновидностей этих экземпляров, скажем, foo
и bar
).
Типичные операции:
-
которые принимают некоторое значение
X
и возвращают некоторое значениеY
. Например, это может быть аксессуар базы данных, содержащий SQL-запрос и соединитель и возвращающий набор данных. Возможно, вам понадобится реализовать postgres, mysql и макет тестовой системы. -
которые принимают некоторое значение
Z
и возвращают замыкание, относящееся кZ
, специализированное для данного стиляfoo
илиbar
, выбранного во время выполнения.
Один человек решил проблему следующим образом:
http://mikehadlow.blogspot.com/2011/05/dependency-injection-haskell-style.html
Но я не знаю, каков ли этот способ управлять этой задачей.