diff --git a/src/FSharp.Core/result.fs b/src/FSharp.Core/result.fs index 63a63435653..dffa3ed9c75 100644 --- a/src/FSharp.Core/result.fs +++ b/src/FSharp.Core/result.fs @@ -6,19 +6,19 @@ namespace Microsoft.FSharp.Core module Result = [] - let map mapping result = + let inline map ([] mapping) result = match result with | Error e -> Error e | Ok x -> Ok(mapping x) [] - let mapError mapping result = + let inline mapError ([] mapping) result = match result with | Error e -> Error(mapping e) | Ok x -> Ok x [] - let bind binder result = + let inline bind ([] binder) result = match result with | Error e -> Error e | Ok x -> binder x @@ -36,43 +36,43 @@ module Result = | Error _ -> true [] - let defaultValue value result = + let inline defaultValue value result = match result with | Error _ -> value | Ok v -> v [] - let defaultWith defThunk result = + let inline defaultWith ([] defThunk) result = match result with | Error error -> defThunk error | Ok v -> v [] - let count result = + let inline count result = match result with | Error _ -> 0 | Ok _ -> 1 [] - let fold<'T, 'Error, 'State> folder (state: 'State) (result: Result<'T, 'Error>) = + let inline fold<'T, 'Error, 'State> ([] folder) (state: 'State) (result: Result<'T, 'Error>) = match result with | Error _ -> state | Ok x -> folder state x [] - let foldBack<'T, 'Error, 'State> folder (result: Result<'T, 'Error>) (state: 'State) = + let inline foldBack<'T, 'Error, 'State> ([] folder) (result: Result<'T, 'Error>) (state: 'State) = match result with | Error _ -> state | Ok x -> folder x state [] - let exists predicate result = + let inline exists ([] predicate) result = match result with | Error _ -> false | Ok x -> predicate x [] - let forall predicate result = + let inline forall ([] predicate) result = match result with | Error _ -> true | Ok x -> predicate x @@ -84,31 +84,31 @@ module Result = | Ok v -> v = value [] - let iter action result = + let inline iter ([] action) result = match result with | Error _ -> () | Ok x -> action x [] - let toArray result = + let inline toArray result = match result with | Error _ -> [||] | Ok x -> [| x |] [] - let toList result = + let inline toList result = match result with | Error _ -> [] | Ok x -> [ x ] [] - let toOption result = + let inline toOption result = match result with | Error _ -> None | Ok x -> Some x [] - let toValueOption result = + let inline toValueOption result = match result with | Error _ -> ValueNone | Ok x -> ValueSome x diff --git a/src/FSharp.Core/result.fsi b/src/FSharp.Core/result.fsi index 837f8b4d06c..a5b7a5cb37a 100644 --- a/src/FSharp.Core/result.fsi +++ b/src/FSharp.Core/result.fsi @@ -25,7 +25,7 @@ module Result = /// /// [] - val map: mapping: ('T -> 'U) -> result: Result<'T, 'TError> -> Result<'U, 'TError> + val inline map: mapping: ('T -> 'U) -> result: Result<'T, 'TError> -> Result<'U, 'TError> /// map f inp evaluates to match inp with Error x -> Error (f x) | Ok v -> Ok v. /// @@ -42,7 +42,7 @@ module Result = /// /// [] - val mapError: mapping: ('TError -> 'U) -> result: Result<'T, 'TError> -> Result<'T, 'U> + val inline mapError: mapping: ('TError -> 'U) -> result: Result<'T, 'TError> -> Result<'T, 'U> /// bind f inp evaluates to match inp with Error e -> Error e | Ok x -> f x /// @@ -67,7 +67,7 @@ module Result = /// /// [] - val bind: binder: ('T -> Result<'U, 'TError>) -> result: Result<'T, 'TError> -> Result<'U, 'TError> + val inline bind: binder: ('T -> Result<'U, 'TError>) -> result: Result<'T, 'TError> -> Result<'U, 'TError> /// Returns true if the result is Ok. /// The input result. @@ -112,7 +112,7 @@ module Result = /// /// [] - val defaultValue: value: 'T -> result: Result<'T, 'Error> -> 'T + val inline defaultValue: value: 'T -> result: Result<'T, 'Error> -> 'T /// Gets the value of the result if the result is Ok, otherwise evaluates and returns the result. /// @@ -129,7 +129,7 @@ module Result = /// /// [] - val defaultWith: defThunk: ('Error -> 'T) -> result: Result<'T, 'Error> -> 'T + val inline defaultWith: defThunk: ('Error -> 'T) -> result: Result<'T, 'Error> -> 'T /// count inp evaluates to match inp with Error _ -> 0 | Ok _ -> 1. /// @@ -144,7 +144,7 @@ module Result = /// /// [] - val count: result: Result<'T, 'Error> -> int + val inline count: result: Result<'T, 'Error> -> int /// fold f s inp evaluates to match inp with Error _ -> s | Ok x -> f s x. /// @@ -163,7 +163,7 @@ module Result = /// /// [] - val fold<'T, 'Error, 'State> : + val inline fold<'T, 'Error, 'State> : folder: ('State -> 'T -> 'State) -> state: 'State -> result: Result<'T, 'Error> -> 'State /// fold f inp s evaluates to match inp with Error _ -> s | Ok x -> f x s. @@ -183,7 +183,7 @@ module Result = /// /// [] - val foldBack<'T, 'Error, 'State> : + val inline foldBack<'T, 'Error, 'State> : folder: ('T -> 'State -> 'State) -> result: Result<'T, 'Error> -> state: 'State -> 'State /// exists p inp evaluates to match inp with Error _ -> false | Ok x -> p x. @@ -202,7 +202,7 @@ module Result = /// /// [] - val exists: predicate: ('T -> bool) -> result: Result<'T, 'Error> -> bool + val inline exists: predicate: ('T -> bool) -> result: Result<'T, 'Error> -> bool /// forall p inp evaluates to match inp with Error _ -> true | Ok x -> p x. /// @@ -220,7 +220,7 @@ module Result = /// /// [] - val forall: predicate: ('T -> bool) -> result: Result<'T, 'Error> -> bool + val inline forall: predicate: ('T -> bool) -> result: Result<'T, 'Error> -> bool /// Evaluates to true if is Ok and its value is equal to . /// @@ -251,7 +251,7 @@ module Result = /// /// [] - val iter: action: ('T -> unit) -> result: Result<'T, 'Error> -> unit + val inline iter: action: ('T -> unit) -> result: Result<'T, 'Error> -> unit /// Convert the result to an array of length 0 or 1. /// @@ -266,7 +266,7 @@ module Result = /// /// [] - val toArray: result: Result<'T, 'Error> -> 'T[] + val inline toArray: result: Result<'T, 'Error> -> 'T[] /// Convert the result to a list of length 0 or 1. /// @@ -281,7 +281,7 @@ module Result = /// /// [] - val toList: result: Result<'T, 'Error> -> 'T list + val inline toList: result: Result<'T, 'Error> -> 'T list /// Convert the result to an Option value. /// @@ -296,7 +296,7 @@ module Result = /// /// [] - val toOption: result: Result<'T, 'Error> -> 'T option + val inline toOption: result: Result<'T, 'Error> -> 'T option /// Convert the result to an Option value. /// @@ -311,4 +311,4 @@ module Result = /// /// [] - val toValueOption: result: Result<'T, 'Error> -> 'T voption + val inline toValueOption: result: Result<'T, 'Error> -> 'T voption