mplus
is exactly what you’re looking for, part of the MonadPlus
typeclass. Here’s its definition:
instance MonadPlus Maybe where
mzero = Nothing
Nothing `mplus` ys = ys
xs `mplus` _ys = xs
To use it in your case:
combined x = (f x) `mplus` (g x) `mplus` (h x)