I think this should work:
let f x y = trial {
let! a = func1 x
let! b = func2 y
return! twoInputFunc a b}
, a b, . func1 func2 , .
:
let g x y = flatten (twoInputFunc <!> func1 x <*> func2 y)
, , , monad join.
: Chessie, , FSharpPlus, generic ( Either), ( trial join flatten) monad.