How to tell if a thing is invertible?

@bobcassels has another question outstanding: How to test whether comparison is defined for a type?
I thought that the `applicable function might help there too, but it doesn’t.

julia> applicable(<, Mod29(1) , Mod29(3))
true

but this fails

julia> Mod29(1) < Mod29(3)
ERROR: < not defined for Mod29

Because

(< )(x::T, y::T) where {T<:Real} = no_op_err("<" , T) 
# see base/promotion.jl line 426

That is, the < method applies to the arguments, but unfortunately that method forces an error.

So my suggestion to use the applicable function is not foolproof :slightly_frowning_face: