Shoehorning dependency injection into a FP language, what does it take?

Programming with functions is great. However, when growing large applications, programming with _modules_ is even better. And, at scale, being able to easily modify the graph of modules becomes essential. This is exactly what an effective dependency injectionsystem should provide! Unfortunately many FP languages do not support dependency injection out of the box.

This talk will first present the criteria for what makes a given dependency injection system effective. It will then show how we can implement such a system for a language like Unison.

Unison is a functional programming language with no support for meta-programming and limited support for abstraction; it only provides an effect and handler type system called "abilities". We will see how we can implement our own dependency injection system with abilities and finally list the programming languages features which could help us to improve that system.

Starting from: $500

Unchain your mind at LambdaConf 2025

Buy tickets