Error Recovery
alt lensA lensB
Section titled “alt lensA lensB”Try lensA; fall back to lensB on left.
(bend.alt bend.str bend.int).get 42 # right 42(bend.alt bend.str bend.int).get true # left truechoice [lens ...]
Section titled “choice [lens ...]”Try each lens in order; return first right or final left.
recover f lens
Section titled “recover f lens”Call f left-value to attempt recovery; f must return Either.
let port = bend.recover (v: if builtins.isString v then let n = builtins.fromJSON v; in if builtins.isInt n then bend.right n else bend.left v else bend.left v) bend.int;in port.get "8080" # right 8080