[ANN] StrucRev - revise type definitions as you go

In the meanwhile there may be a chance for a general solution in sight

and most probably the problem is above my competence anyway. Still, the following idea, rather vague one:

module Module_Foo
    struct Foo
        x::Int
    end
end
Foo = Module_Foo.Foo


# now we want to re-define Foo
fm = methodswith(Foo)

sources = [m.source_ref for m in fm] # pseudocode

# delete "old" methods
for m in fm
    Base.delete_method(m)
end

# re-define Foo
module Module_Foo
    struct Foo
        x::Int
        y::Int
    end
end
Foo = Module_Foo.Foo 

for s in sources
    recompile(s) # pseudocode
end

in separate place:

foo(a::Foo) = a.x

Any idea what to put on the place of the pseudocode?