I’d like to check if a type has iterate defined. Of course, iterate needs two methods – iterate(::T) and iterate(::T, state).
julia> hasmethod(iterate, (Vector{Int}, Any))
true
julia> hasmethod(iterate, (Tuple{Int}, Any))
false # huh?
julia> hasmethod(iterate, (Tuple{Int}, Int))
true # Oooh...
I want to know if there is a two-argument method for iterate where the first argument is of some type T, but I don’t care what the second type is. I know that I could call methods(iterate) and then filter the returned list, but is there some way for me to called hasmethod(iterate, (Tuple{Int}, *))?