想象一下 OCaml 中的一个库,它可能需要将其数据存储在某个地方。这个持久层可以用不同的库(sqlite、MySQL、PostgreSQL 等)来实现。并且根据存储的具体技术,它可能会提供不同的功能和性能保证。
有哪些可能的方法来管理此类库的外部依赖项?假设我使用 MySQL 进行开发,我不想在 sqlite 上引入编译时间和运行时依赖项。
在 C++ 中,我可能会使用抽象接口并将具体逻辑放入有条件地包含在我的项目中的模块中(取决于配置开关)。我很好奇,有人会如何在 OCaml 中处理相同的任务。