Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [<AutoOpen>]
- module Prelude
- type AsyncResult<'T, 'TError> =
- Async<Result<'T, 'TError>>
- module AsyncResult =
- let map (mapping : 'T -> 'U) (result : AsyncResult<'T, 'TError>) : AsyncResult<'U, 'TError> =
- async {
- match! result with
- | Ok value -> return Ok (mapping value)
- | Error err -> return Error err
- }
- let bind (mapping : 'T -> AsyncResult<'U, 'TError>) (result : AsyncResult<'T, 'TError>) : AsyncResult<'U, 'TError> =
- async {
- match! result with
- | Ok value -> return! mapping value
- | Error err -> return Error err
- }
Add Comment
Please, Sign In to add comment