Here’s a few examples:
String.Casing
: Don't use String.Casing it breaks in Elixir 1.6 · Issue #5 · blackode/elixir-tips · GitHubMix.Ecto
was private in Ecto 2.x. There’s a bunch of blog posts that broke with Ecto 3.x because of it- Mix tasks accessing the db with `Mix.Ecto` - Today I Learned
- Still has broken example code (but they’re working on it soon: Broken code on TIL "Mix tasks accessing the db with `Mix.Ecto`" · Issue #311 · hashrocket/tilex · GitHub)
- Using Ecto Repo in Custom Mix Task
- Create mix tasks that invoke existing modules which use Ecto - #3 by jackmarchant
- Mix tasks accessing the db with `Mix.Ecto` - Today I Learned
IEx.Autocomplete
: How to get code completion in IEx programmatically?- They probably didn’t realize that it was private, although maybe they did
I think that you may be overestimating the number of people that will recognize a @moduledoc false
attribute means that the module is private to the application. Also don’t forget that it is easy for a developer to search on Google, find some example code (that may be using a private module), and then test the code locally and everything works just fine without any warnings. There’s also at least 2 more blog posts that used Mix.Ecto
when it was private, but I couldn’t find them again with a quick search.