('a -> Async<Result<'b option, 'c>>)
-> Async<Result<'a option, 'c>>
-> Async<Result<'b option, 'c>>
getUserById : UserId -> Async<Result<User option, exn>>
getPostById : PostId -> Async<Result<Post option, exn>>
// Async<Result<Post option, exn>>
getPostById postId
|> AsyncResultOption.bind (fun post -> getUserById post.UserId)