If you really want to dispatch on Maybe, you could roll your own Maybe type, something like
abstract Maybe{T}
immutable Just{T} <: Maybe{T}
x::T
end
# Nothing is already taken (though deprecated?)
immutable Nada{T} <: Maybe{T}
end
I'm not sure how convenient it would be though. If you want type stability, it
would only make sense if the availability of a return value from a function
could be determined from the types of its arguments.
