From this section of the manual, there is no mention of what happens with return type ::Any https://docs.julialang.org/en/stable/manual/types/#Type-Declarations-1
This came up in https://github.com/simonster/Memoize.jl/pull/18, what is the correct semantics of functions that declare a return type of Any? Are they exactly the same as not declaring a return type? Since whatever type is returned satisfies T<:Any, I would expect them to have the same meaning. The method definition expression is different as a macro that takes a function definition can see the AST node with
ex.args.head == :(::) in the case of return types and no such node when there is no return type declared.
Would it be safe to add a return type declaration of Any to all functions that do not declare an return type?