Skip to content

implicit_transitive_deps causes confusing errors for new users #18

Description

@nenofite

👋 Just started using oskel and I'm really enjoying it!

I suggest implicit_transitive_deps (inside /dune-project) should either:

  • not be included as a default setting, since it leads to counter-intuitive behavior
  • call out prominently in the documentation that you must explicitly include the dependencies of your library dependencies

Extra context:

The (implicit_transitive_deps false) setting causes Dune to not include dependencies of your direct dependencies, eg. if you include Jane's core_kernel then it won't include base. You'll get errors about types that should be equivalent and missing .cmi files, like below. It took me a while to track these down to the implicit_transitive_deps setting.

Error: This expression has type Base.string
       but an expression was expected of type string
       Base.string is abstract because no corresponding cmi file was found in path.

I'm a newcomer here, so it may be that oskel is targeted more at experienced OCaml users rather than newcomers like me. However if it's meant for newer users of OCaml or Dune, then I suggest the above to make development more intuitive!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions