You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/FSharpPlus/Data/Error.fs
+36Lines changed: 36 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -72,6 +72,24 @@ type ResultT<'``monad<Result<'t,'e>>``> with
72
72
static member inline(<*>)(f:ResultT<'``Monad<Result<('T -> 'U),'E>>``>,x:ResultT<'``Monad<Result<'T,'E>>``>)= ResultT.apply f x : ResultT<'``Monad<Result<'U,'E>>``>
73
73
static member inline(>>=)(x: ResultT<'``Monad<Result<'T,'E>>``>, f: 'T->ResultT<'``Monad<Result<'U,'E>>``>)= ResultT.bind f x
74
74
75
+
static member inlineget_Zero():ResultT<'``MonadPlus<Result<'U,'E>>``>= ResultT <| result (Error zero)
76
+
static member inline(+)(ResultT x,ResultT y):ResultT<'``MonadPlus<Result<'U,'E>>``>=
77
+
ResultT <|(x >>=function
78
+
| Ok x -> y >>=function
79
+
| Ok y -> result (Ok (x ++ y))
80
+
| Error _-> result (Ok x)
81
+
| Error x -> y >>=function
82
+
| Ok y -> result (Ok y)
83
+
| Error y -> result (Error (x ++ y)))
84
+
85
+
static member inlineget_Empty():ResultT<'``MonadPlus<Result<'U,'E>>``>= ResultT <| result (Error zero)
86
+
static member inline(<|>)(ResultT x,ResultT y):ResultT<'``MonadPlus<Result<'U,'E>>``>=
87
+
ResultT <|(x >>=function
88
+
| Ok value -> result (Ok value)
89
+
| Error x -> y >>=function
90
+
| Ok value -> result (Ok value)
91
+
| Error y -> result (Error (x ++ y)))
92
+
75
93
static member inlineTryWith(source:ResultT<'``Monad<Result<'T,'E>>``>,f:exn ->ResultT<'``Monad<Result<'T,'E>>``>)= ResultT (TryWith.Invoke (ResultT.run source)(ResultT.run << f))
76
94
static member inlineTryFinally(computation:ResultT<'``Monad<Result<'T,'E>>``>,f)= ResultT (TryFinally.Invoke (ResultT.run computation) f)
77
95
static member inlineUsing(resource,f:_ ->ResultT<'``Monad<Result<'T,'E>>``>)= ResultT (Using.Invoke resource (ResultT.run << f))
@@ -137,6 +155,24 @@ type ChoiceT<'``monad<Choice<'t,'e>>``> with
137
155
static member inline(<*>)(f:ChoiceT<'``Monad<Choice<('T -> 'U),'E>>``>,x:ChoiceT<'``Monad<Choice<'T,'E>>``>)= ChoiceT.apply f x : ChoiceT<'``Monad<Choice<'U,'E>>``>
138
156
static member inline(>>=)(x: ChoiceT<'``Monad<Choice<'T,'E>>``>, f: 'T->ChoiceT<'``Monad<Choice<'U,'E>>``>)= ChoiceT.bind f x
139
157
158
+
static member inlineget_Zero():ChoiceT<'``MonadPlus<Choice<'U,'E>>``>= ChoiceT <| result (Choice2Of2 zero)
159
+
static member inline(+)(ChoiceT x,ChoiceT y):ChoiceT<'``MonadPlus<Choice<'U,'E>>``>=
160
+
ChoiceT <|(x >>=function
161
+
| Choice1Of2 x -> y >>=function
162
+
| Choice1Of2 y -> result (Choice1Of2 (x ++ y))
163
+
| Choice2Of2 _-> result (Choice1Of2 x)
164
+
| Choice2Of2 x -> y >>=function
165
+
| Choice1Of2 y -> result (Choice1Of2 y)
166
+
| Choice2Of2 y -> result (Choice2Of2 (x ++ y)))
167
+
168
+
static member inlineget_Empty():ChoiceT<'``MonadPlus<Choice<'U,'E>>``>= ChoiceT <| result (Choice2Of2 zero)
169
+
static member inline(<|>)(ChoiceT x,ChoiceT y):ChoiceT<'``MonadPlus<Choice<'U,'E>>``>=
170
+
ChoiceT <|(x >>=function
171
+
| Choice1Of2 value -> result (Choice1Of2 value)
172
+
| Choice2Of2 x -> y >>=function
173
+
| Choice1Of2 value -> result (Choice1Of2 value)
174
+
| Choice2Of2 y -> result (Choice2Of2 (x ++ y)))
175
+
140
176
static member inlineTryWith(source:ChoiceT<'``Monad<Choice<'T,'E>>``>,f:exn ->ChoiceT<'``Monad<Choice<'T,'E>>``>)= ChoiceT (TryWith.Invoke (ChoiceT.run source)(ChoiceT.run << f))
141
177
static member inlineTryFinally(computation:ChoiceT<'``Monad<Choice<'T,'E>>``>,f)= ChoiceT (TryFinally.Invoke (ChoiceT.run computation) f)
142
178
static member inlineUsing(resource,f:_ ->ChoiceT<'``Monad<Choice<'T,'E>>``>)= ChoiceT (Using.Invoke resource (ChoiceT.run << f))
Copy file name to clipboardExpand all lines: src/FSharpPlus/Data/Option.fs
+13-5Lines changed: 13 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -49,11 +49,19 @@ type OptionT<'``monad<option<'t>>``> with
49
49
[<EditorBrowsable(EditorBrowsableState.Never)>]
50
50
static member inlineLift3(f:'T->'U->'V->'W,x:OptionT<'``Monad<option<'T>``>,y:OptionT<'``Monad<option<'U>``>,z:OptionT<'``Monad<option<'W>``>)= OptionT.map3 f x y z : OptionT<'``Monad<option<'W>``>
51
51
52
-
static member inline(<*>)(f:OptionT<'``Monad<option<('T -> 'U)>``>,x:OptionT<'``Monad<option<'T>``>)= OptionT.apply f x : OptionT<'``Monad<option<'U>``>
53
-
static member inline(>>=)(x: OptionT<'``Monad<option<'T>``>, f: 'T -> OptionT<'``Monad<option<'U>``>)= OptionT.bind f x
54
-
55
-
static member inlineget_Empty()= OptionT <| result None : OptionT<'``MonadPlus<option<'T>``>
56
-
static member inline(<|>)(OptionT x,OptionT y)= OptionT <|(x >>=(fun maybe_value ->match maybe_value with Some value -> result (Some value)|_-> y)): OptionT<'``MonadPlus<option<'T>``>
52
+
static member inline(<*>)(f:OptionT<'``Monad<option<('T -> 'U)>``>,x:OptionT<'``Monad<option<'T>``>)= OptionT.apply f x : OptionT<'``Monad<option<'U>``>
53
+
static member inline(>>=)(x: OptionT<'``Monad<option<'T>``>, f: 'T -> OptionT<'``Monad<option<'U>``>)= OptionT.bind f x
54
+
55
+
static member inlineget_Zero():OptionT<'``MonadPlus<option<'T>``>= OptionT <| result None
56
+
static member inline(+)(OptionT x,OptionT y):OptionT<'``MonadPlus<option<'T>``>=
57
+
OptionT <|(x >>=function
58
+
| None -> y
59
+
| Some x -> y >>=function
60
+
| None -> result (Some x)
61
+
| Some y -> result (Some (x ++ y)))
62
+
63
+
static member inlineget_Empty():OptionT<'``MonadPlus<option<'T>``>= OptionT <| result None
64
+
static member inline(<|>)(OptionT x,OptionT y):OptionT<'``MonadPlus<option<'T>``>= OptionT <|(x >>=function Some value -> result (Some value)|_-> y)
57
65
58
66
static member inlineTryWith(source:OptionT<'``Monad<option<'T>>``>,f:exn ->OptionT<'``Monad<option<'T>>``>)= OptionT (TryWith.Invoke (OptionT.run source)(OptionT.run << f))
59
67
static member inlineTryFinally(computation:OptionT<'``Monad<option<'T>>``>,f)= OptionT (TryFinally.Invoke (OptionT.run computation) f)
Copy file name to clipboardExpand all lines: src/FSharpPlus/Data/ValueOption.fs
+13-5Lines changed: 13 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -49,11 +49,19 @@ type ValueOptionT<'``monad<voption<'t>>``> with
49
49
[<EditorBrowsable(EditorBrowsableState.Never)>]
50
50
static member inlineLift3(f:'T->'U->'V->'W,x:ValueOptionT<'``Monad<voption<'T>``>,y:ValueOptionT<'``Monad<voption<'U>``>,z:ValueOptionT<'``Monad<voption<'W>``>)= ValueOptionT.map3 f x y z : ValueOptionT<'``Monad<voption<'W>``>
51
51
52
-
static member inline(<*>)(f:ValueOptionT<'``Monad<voption<('T -> 'U)>``>,x:ValueOptionT<'``Monad<voption<'T>``>)= ValueOptionT.apply f x : ValueOptionT<'``Monad<voption<'U>``>
53
-
static member inline(>>=)(x: ValueOptionT<'``Monad<voption<'T>``>, f: 'T -> ValueOptionT<'``Monad<voption<'U>``>)= ValueOptionT.bind f x
54
-
55
-
static member inlineget_Empty()= ValueOptionT <| result ValueNone : ValueOptionT<'``MonadPlus<voption<'T>``>
56
-
static member inline(<|>)(ValueOptionT x,ValueOptionT y)= ValueOptionT <|(x >>=(fun maybe_value ->match maybe_value with ValueSome value -> result (ValueSome value)|_-> y)): ValueOptionT<'``MonadPlus<voption<'T>``>
52
+
static member inline(<*>)(f:ValueOptionT<'``Monad<voption<('T -> 'U)>``>,x:ValueOptionT<'``Monad<voption<'T>``>)= ValueOptionT.apply f x : ValueOptionT<'``Monad<voption<'U>``>
53
+
static member inline(>>=)(x: ValueOptionT<'``Monad<voption<'T>``>, f: 'T -> ValueOptionT<'``Monad<voption<'U>``>)= ValueOptionT.bind f x
54
+
55
+
static member inlineget_Zero():ValueOptionT<'``MonadPlus<voption<'T>``>= ValueOptionT <| result ValueNone
56
+
static member inline(+)(ValueOptionT x,ValueOptionT y):ValueOptionT<'``MonadPlus<voption<'T>``>=
57
+
ValueOptionT <|(x >>=function
58
+
| ValueNone -> y
59
+
| ValueSome x -> y >>=function
60
+
| ValueNone -> result (ValueSome x)
61
+
| ValueSome y -> result (ValueSome (x ++ y)))
62
+
63
+
static member inlineget_Empty():ValueOptionT<'``MonadPlus<voption<'T>``>= ValueOptionT <| result ValueNone
64
+
static member inline(<|>)(ValueOptionT x,ValueOptionT y):ValueOptionT<'``MonadPlus<voption<'T>``>= ValueOptionT <|(x >>=function ValueSome value -> result (ValueSome value)|_-> y)
57
65
58
66
static member inlineTryWith(source:ValueOptionT<'``Monad<voption<'T>>``>,f:exn ->ValueOptionT<'``Monad<voption<'T>>``>)= ValueOptionT (TryWith.Invoke (ValueOptionT.run source)(ValueOptionT.run << f))
59
67
static member inlineTryFinally(computation:ValueOptionT<'``Monad<voption<'T>>``>,f)= ValueOptionT (TryFinally.Invoke (ValueOptionT.run computation) f)
0 commit comments