Hi Jonathan, You oasis looks fine to me. I have only two ideas. The first one is that you didn't run `oasis setup` after you made the changes, so I would suggest cleaning current state and starting from scratch. (I usually just do `git clean -idx` just to be sure that I got rid of any generated files, like setup.data, et alas, but be careful, don't delete something that you need). Another idea is that you're using oasis 0.4.7 with ocaml-4.03.0+flambda, they are currently incompatible, and can produce weird bugs. If that so, then consider switching either a compiler or oasis to different versions. Best wishes, Ivan Gotovchits On Thu, Oct 27, 2016 at 1:01 AM, Jonathan DiLorenzo < dilorenzo@cs.cornell.edu> wrote: > Hey all, > > I'm trying to build my system using Oasis and OCamlbuild. I have 3 > different libraries and for some reason I seem to only be able to refer > from one to the other in seemingly random files. For example, I want my > 'ppx' library to be able to use functions from my 'parser' library. One > file (ppx_forest.ml) can use functions from it, while another in the same > library (skins.ml) cannot, giving me this error: > > File "_none_", line 1: > Error: No implementations provided for the following modules: > Forest_parser_helper referenced from ppx/ppx.cmxa(Skins) > Command exited with code 2. > > They can all refer to types I've defined therein though. > > I'm not fantastic at Oasis so maybe I'm just missing something basic? Any > ideas? Any more information I can gather to give more context otherwise? > > Thanks in advance, > Jonathan > > Excerpt of my Oasis file that may possibly be relevant: > > Library forest > Path: lib > BuildTools: ocamlbuild > BuildDepends: pads, str, re, re.glob, core, threads, ppx_let > CompiledObject: best > Modules: Forest, PadsInterface > > Library parser > Path: parsing > BuildTools: ocamlbuild, menhir, ocamllex > Findlibparent: forest > Findlibname: parser > BuildDepends: forest, ppx_deriving.show, compiler-libs.common > CompiledObject: best > Modules: Forest_parser_helper > InternalModules: Forest_lexer, Forest_parser, Forest_types > > Library ppx > Path: ppx > BuildTools: ocamlbuild > Findlibparent: forest > Findlibname: ppx > BuildDepends: re, re.str, forest.parser, forest, ppx_tools.metaquot > CompiledObject: best > Modules: Ppx_forest > InternalModules: Ppx_forest_lib, Utility, Skins > XMETAEnable: true > XMETARequires: str re core threads ppx_tools.metaquot > XMETAExtraLines: ppx = "ppx_forest" > > Executable ppx_forest > Path: ppx > MainIs: ppx_forest.ml > BuildDepends: forest, forest.parser, forest.ppx, pads.ppx, > ppx_tools.metaquot > CompiledObject: best > >