Why Elixir dependencies compilation artifacts end up in deps?

Thank you everyone for your help!

For reference : I add the link to the post What directory structure and files does mix create? - #4 by joeerl which also tried to understand the directory structure.

The idea that the content of deps and _build directories are meant to be “private” implementation details is also problematic to me. I use to cache deps and add _build as artifact in my GitLab CI pipeline which uses several concurrent jobs. It took me extremely long time to understand that the reason my GitLab CI pipeline sometime failed and sometime passed was partly due to deps containing build artifacts.
So in practice, it is not an implementation detail because I needed that knowledge (deps containing build artifacts) to achieve my goal.