Shouldn't we be reassigning the graph variable? It seems we are adding the vertex, but then it is lost because we don't assign the new graph anywhere. You probably want:

    graph = Enum.reduce erls, graph, fn(erl, acc) ->
      Graph.add_vertex(acc, erl.module, erl)
    end