ну вот возьми формальное определение и попробуй подставить то, что ты написал в него
вообще монада это тип данных, а в котлине остается только эмулировать это функциями. лично я разницы не вижу, потому что и там и там нужно либо оборачивать Optional(2), либо .monad()