Module with state - how to implement?

Well I don’t have it yet, I’m trying to think ahead before starting to code. But schematically:

module ModWithState

global_state = Dict()

struct TrackedVar{T}
    value::T
end

end

Now what I want to do and don’t know how, is to keep track of a kind of graph structure between these tracked vars. For example, if I were to type in the repl (schematically):

x = TrackedVar(5)
y = TrackedVar(2)
z = x + y

Then z should be a TrackedVar with value 7 and furthermore, global_state should be somehow encode the graph structure implied by z=x+y, for example something like Dict(x=>[], y=>[], z=>[x,y]).