Result (imandra-base.Imandra_prelude.Result)

`type ('a, 'b) t = ( 'a, 'b ) result`
`val return : 'a -> ( 'a, 'b ) result`
`val fail : 'a -> ( 'b, 'a ) result`
`val map : ( 'a -> 'b ) -> ( 'a, 'c ) result -> ( 'b, 'c ) result`
`val map_err : ( 'a -> 'b ) -> ( 'c, 'a ) result -> ( 'c, 'b ) result`
`val get_or : ( 'a, 'b ) result -> default:'a -> 'a`
`val map_or : ( 'a -> 'b ) -> ( 'a, 'c ) result -> default:'b -> 'b`
`val (>|=) : ( 'a, 'b ) result -> ( 'a -> 'c ) -> ( 'c, 'b ) result`
`val flat_map : ( 'a -> ( 'b, 'c ) result ) -> ( 'a, 'c ) result -> ( 'b, 'c ) result`
`val (>>=) : ( 'a, 'b ) result -> ( 'a -> ( 'c, 'b ) result ) -> ( 'c, 'b ) result`
`val fold : ok:( 'a -> 'b ) -> error:( 'c -> 'b ) -> ( 'a, 'c ) result -> 'b`
`val is_ok : ( 'a, 'b ) result -> bool`
`val is_error : ( 'a, 'b ) result -> bool`
`val monoid_product : ( 'a, 'b ) result -> ( 'c, 'b ) result -> ( 'a * 'c, 'b ) result`
`val let+ : ( 'a, 'b ) result -> ( 'a -> 'c ) -> ( 'c, 'b ) result`
`val and+ : ( 'a, 'b ) result -> ( 'c, 'b ) result -> ( 'a * 'c, 'b ) result`
`val let* : ( 'a, 'b ) result -> ( 'a -> ( 'c, 'b ) result ) -> ( 'c, 'b ) result`
`val and* : ( 'a, 'b ) result -> ( 'c, 'b ) result -> ( 'a * 'c, 'b ) result`