Skip to content

Error Recovery

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 true

Try each lens in order; return first right or final left.

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
Contribute Community Sponsor