Actually WhereTraits.jl looks even better for this. You can literally just do
@traits f(x) where {applicable(print, x)} = ...
and it will dispatch depending on that boolean condition.
However the downside is this is not zero-overhead whereas SimpleTraits.jl is.
(Although WhereTraits allows multiple traits; SimpleTraits only permits one)