Implicit compile-time dependencies

A concrete example of A that would showcase this issue like this might look like this:

defmodule A
  @the_answer B.search()
  def get_the_answer, do: @the_answer
end

So when C changes, A needs to be recompiled because B.search/0 might call a function in C