I fixed it. It was the package specification order. :( I wish there were a warning about that in the compiler output that mentions the lack of implementation that the compiler sees. On Tue, Jun 23, 2015 at 1:45 PM, Kenneth Adam Miller < kennethadammiller@gmail.com> wrote: > I'm using OCamlMakefile (rather the library that I'm editing uses it, and > I have to use it consequently), and I need to add some package dependencies > in order to recompile each while developing locally before I ship my > changes to opam. Basically, I've added the core and core_kernel packages to > these libraries to make some functions tail recursive. But it's turning out > that using OCamlMakefile has made it more difficult than it sounds. > > A is consumed by B, but both must be installed for them to be usable on > the target machine. Currently, you can do an opam install A B and it will > work. A has been successfully edited and subsequently recompiled to > consume core and core_kernel as it needs to. I was even able to opam pin > the package to get it working locally. > > B consumes A, but weirdly, B complains of the following when I try to make > it: > > Error: No implementations provided for the following modules: > Core_kernel referenced from /path/to/(A) > Core referenced from /path/to/(A) > > I noted that in Stack Overflow that there were some issues with casing for > package names when you built stuff. This is strange because when I was > compiling A, it worked fine. I changed the casing to A instead of a in the > OCamlMakefile export PACKS= line, and it failed, unable to find the package > A. > > So, A compiles just fine, but B refuses. I tried to change B to specify > various combinations of casing of core (as in: PACKS+=core vs PACKS+=Core) > but that failed too. > > So now I don't know how to get B to compile using OCamlMakefile. > >