Прочитал
http://jonasboner.com/2008/10/06/real-world-scala-dependency-injection-di/ всё понятно, но уже в этой статье есть два способа, как делать DI — Cake паттерн и structural typing. Кроме этого есть ещё несколько Scala-библиотек ну и с десяток Java, которые, в принципе, тоже никто не запрещает использовать.
Мне самым удобным показался structural typing. За cake pattern говорит то, что его использует сам создатель языка в компиляторе (как я понял).
Смысла использовать библиотеки при таком богатом языке я пока не увидел. На первый взгляд кажется, что оба способа решают все проблемы.
Есть ещё, кстати, Reader monad, описанный
тут, но мне это показалось немного чуждым, может я недостаточно ещё проникся функциональщиной.
Хочется спросить у более опытных товарищей, на какие грабли вы наступали, которые могут повлиять на выбор технологии.