Решить с помощью map не выйдет. так как в результате получим Maybe<Maybe<B>>, поэтому нам нужна еще одна функция
static class Monad {
В скале это называется flatMap() в дополнение к map(). И что, это и есть монада? Господи, да в скаловских коллекциях функций мильярд, на каждую придумывать по параллельному термину — озвереешь.