open Chiron
open Chiron.Operators
module D = Json.Decode
open JsonTransformer
module JsonResult =
let inline orElse (a2bR: JsonFailure -> JsonResult<'a>) (aR: JsonResult<'a>): JsonResult<'a> =
match aR with
| JPass a -> JsonResult.pass a
| JFail x -> a2bR x
module Decoder =
let inline orElse (f2s2aR: JsonFailure -> Decoder<'s,'a>) (s2aR: Decoder<'s,'a>): Decoder<'s,'a> =
fun s ->
s2aR s
|> JsonResult.orElse (fun f -> f2s2aR f s)