Each method in a scope should have a unique name. Having multiple methods with the same name is usually a result of typos.
def f
puts "Hello"
end
def f
puts "World"
end
def g
puts "!"
end
alias f g
def f
puts "Hello"
end
def g
puts "World"
end
def h
puts "!"
end
alias i h