imports for bindings that are not available should fail
Writing
import dune.functions
when dune-functions is not available will not give an error. Instead the user will just silently get an empty module.
I think it would be far more user-friendly to just have the import dune.functions
fail with an error, e.g. just call assertHave(...)
at the beginning of the module and don't have everything only defined conditionally.
Alternatively the same set of symbols should be exported, returning as error when used. (Though this has the problem of both sets of symbols probably getting out-of-sync.)