Add cross-references `[`foo`](@ref)` to functions with same name but different arguments

documentation

#1

Hi all,

When writing documentation for a function, is it possible to create cross-references (i.e. @ref) to functions that have the same name but different dispatch signature? Below is a simplified example of what I have in mind.

struct TypeOne end
struct TypeTwo end

"""
function foo(TypeOne())

Function performs operation foo. 
See also: [`foo`](@ref) # Would like this to link to foo(::TypeTwo)
"""
function foo(mytype::TypeOne)
end



"""
function foo(TypeTwo())

Function performs a variant of operation foo. 
See also: [`foo`](@ref) # Would like this to link to foo(::TypeOne)
"""
function foo(mytype::TypeTwo)
end


#2
struct TypeOne end
struct TypeTwo end

"""
    foo(::TypeOne)

Function performs operation foo.
See also: [`foo`](@ref foo(::TypeTwo))
"""
foo(::TypeOne) = 1

"""
    foo(::TypeTwo)

Function performs operation foo.
See also: [`foo`](@ref foo(::TypeOne))
"""
foo(::TypeTwo) = 2

and also make sure to split the docstring of foo in the markdown file:

```@docs
foo(::TypeOne)
foo(::TypeTwo)
```