You can match them as a tuple
(aOpt, bOpt) match {
case (Some(aVal), Some(bVal)) => ...
case _ => ...
}
You could use for-comprehension syntax
for {
aVal <- aOpt
bVal <- bOpt
} ...
There are also some monadic combinators ((aOpt |@| bOpt) {aVal + bVal}
) in the Scalaz library if you want to go that road.