У меня есть два значения, t1
и t2
, типа Either String Type
.Значение Left
используется для обработки ошибок.Эти значения используются в функции, которая возвращает Either String Type
.
. Я хочу проверить, являются ли t1
и t2
значениями Right
и удовлетворяют ли p :: Type -> Bool
.Если они это сделают, я хочу вернуть Right (the type inside t1)
.Если t1
и t2
являются Right
-значениями, но не удовлетворяют p
, я хочу вернуть Left someString
.Если одно из t1
или t2
является значением Left
, я просто хочу передать это значение.
Как я могу сделать это элегантным способом?У меня есть предчувствие, что использование Either в качестве монады - правильное решение, но я не уверен, как это сделать.