module Guard::Internals::Tracing

def self.untrace(mod, meth)

def self.untrace(mod, meth)
  meta = (class << mod; self; end)
  original_meth = "original_#{meth}".to_sym
  unless mod.respond_to?(original_meth)
    fail "NOT TRACED: #{mod}.#{meth} (no method: #{original_meth})"
  end
  meta.send(:remove_method, meth)
  meta.send(:alias_method, meth, original_meth)
  meta.send(:undef_method, original_meth)
end