I’ve been wondering what a dependency management system would look like recently. In terms of resolving the correct version of dependencies I think that would be easy, or at least that is what I dellude myself with. With SWI-Prolog I have two concerns. Foremost concern is what a client API would look like. The second is integration with existing tools such as Git. Looks like the SWI-Porlog’s pack has matured for a while now however it doesn’t seem to have much community support. Anyway, reinventing the wheel is the best way to understand the tradeoffs made.

To answer the core concern the file_search_path/2 would probably be the method to do so. I would imagine the dependency manifest file would map a dependency and version to a name with an adapter for file_search_path to generalize that manifest. I’m excited to try this, but alas, life calls.