У меня есть код, написанный в Lift. По сути, это вложенный Box (монада, аналогичная Option). Я хотел бы немного упростить его, если это возможно. Желательно добавить параметр типа, чтобы его можно было легко изменить на строку или двойное значение, если это необходимо. Вот код
tryo(r.param("boolean parameter").map(_.toBoolean)).map(_.openOr(false)).openOr(false)
«tryo» — это вспомогательная функция для перехвата и переноса результатов в Box, если возникает исключение, а r — это объект Req. Функция "param" возвращает Box[String] (который исходит из параметра запроса). Я хотел бы, чтобы он работал для строк Int и т. Д. И, если возможно, избавиться от вложенных карт / openOr (getOrElse, как вы думаете, в типах Option).
Преобразователи монад?