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/Control/MonadTrans.fs
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -52,14 +52,14 @@ type CallCC = static member inline Invoke (f: (('T -> '``MonadCont<'U>``) ->'``M
52
52
53
53
// MonadState
54
54
55
-
typeGet=static member inlineInvoke():'``MonadState<'S*'S>`` =(^``MonadState<'S * 'S>``:(static memberGet:_)())
56
-
typePut=static member inlineInvoke(x:'S):'``MonadState<unit*'S>`` =(^``MonadState<unit * 'S>``:(static memberPut:_->_) x)
55
+
typeGet=static member inlineInvoke():'``MonadState<'S,'S>`` =(^``MonadState<'S, 'S>``:(static memberGet:_)())
56
+
typePut=static member inlineInvoke(x:'S):'``MonadState<'S,unit>`` =(^``MonadState<'S, unit>``:(static memberPut:_->_) x)
57
57
58
58
59
59
// MonadReader
60
60
61
-
typeAsk=static member inlineInvoke():'``MonadReader<'R,'T>`` =(^``MonadReader<'R,'T>``:(static memberAsk:_)())
62
-
typeLocal=static member inlineInvoke(f:'R1->'R2)(m:^``MonadReader<'R2,'T>``):'``MonadReader<'R1,'T>`` =(^``MonadReader<'R1,'T>``:(static memberLocal:_*_->_) m, f)
61
+
typeAsk=static member inlineInvoke():'``MonadReader<'R,'T>`` =(^``MonadReader<'R,'T>``:(static memberAsk:_)())
62
+
typeLocal=static member inlineInvoke(f:'R1->'R2)(m:^``MonadReader<'R2,'T>``):'``MonadReader<'R1,'T>`` =(^``MonadReader<'R1,'T>``:(static memberLocal:_*_->_) m, f)
/// Embed a Monad<'T> into a ChoiceT<'Monad<Choice<'T,'Error>>>
45
-
let inlinelift(x:'``Monad<'T>``):ResultT<'``Monad<Result<'T,'Error>>``>=
44
+
/// Embed a Monad<'T> into a ResultT<'Monad<Result<'T, 'TError>>>
45
+
let inlinelift(x:'``Monad<'T>``):ResultT<'``Monad<Result<'T,'TError>>``>=
46
46
if opaqueId falsethen x |> liftM Ok |> ResultT
47
47
else x |> map Ok |> ResultT
48
48
49
49
/// Transform a Result<'T,'Error> to a ResultT<'Monad<Result<'T,'Error>>>
50
50
let inlinehoist(x:Result<'T,'TError>)= ResultT (result x): ResultT<'``Monad<Result<'T,'TError>>``>
51
51
52
-
let inlinebind(f:'T->ResultT<'``Monad<'Result<'U,'E>>``>)(ResultT m:ResultT<'``Monad<'Result<'T,'E>>``>)=(ResultT (m >>=(fun a ->match a with Error l -> result (Error l)| Ok r -> run (f r))))
52
+
let inlinebind(f:'T->ResultT<'``Monad<Result<'U,'E>>``>)(ResultT m:ResultT<'``Monad<Result<'T,'E>>``>)=(ResultT (m >>=(fun a ->match a with Error l -> result (Error l)| Ok r -> run (f r))))
53
53
54
-
let inlineapply(ResultT f:ResultT<'``Monad<'Result<('T -> 'U),'E>>``>)(ResultT x:ResultT<'``Monad<'Result<'T,'E>>``>)= ResultT (map Result.apply f <*> x): ResultT<'``Monad<'Result<'U,'E>>``>
let inlinemap2(f:'T->'U->'V)(ResultT x:ResultT<'``Monad<Result<'T,'E>>``>)(ResultT y:ResultT<'``Monad<Result<'U,'E>>``>):ResultT<'``Monad<Result<'V,'E>>``>= ResultT (lift2 (Result.map2 f) x y)
57
57
let inlinemap3(f:'T->'U->'V->'W)(ResultT x:ResultT<'``Monad<Result<'T,'E>>``>)(ResultT y:ResultT<'``Monad<Result<'U,'E>>``>)(ResultT z:ResultT<'``Monad<Result<'V,'E>>``>):ResultT<'``Monad<Result<'W,'E>>``>= ResultT (lift3 (Result.map3 f) x y z)
58
58
59
-
typeResultT<'``monad<'result<'t,'e>>``>with
59
+
typeResultT<'``monad<Result<'t,'e>>``>with
60
60
61
-
static member inlineReturn(x:'T)= ResultT (result (Ok x)): ResultT<'``Monad<'Result<'T,'E>>``>
61
+
static member inlineReturn(x:'T)= ResultT (result (Ok x)): ResultT<'``Monad<Result<'T,'E>>``>
62
62
63
63
[<EditorBrowsable(EditorBrowsableState.Never)>]
64
-
static member inlineMap(x:ResultT<'``Monad<'Result<'T,'E>>``>,f:'T->'U)= ResultT.map f x : ResultT<'``Monad<'Result<'U,'E>>``>
64
+
static member inlineMap(x:ResultT<'``Monad<Result<'T,'E>>``>,f:'T->'U)= ResultT.map f x : ResultT<'``Monad<Result<'U,'E>>``>
65
65
66
66
[<EditorBrowsable(EditorBrowsableState.Never)>]
67
67
static member inlineLift2(f:'T->'U->'V,x:ResultT<'``Monad<Result<'T,'E>``>,y:ResultT<'``Monad<Result<'U,'E>``>):ResultT<'``Monad<Result<'V,'E>``>= ResultT.map2 f x y
68
68
69
69
[<EditorBrowsable(EditorBrowsableState.Never)>]
70
70
static member inlineLift3(f:'T->'U->'V->'W,x:ResultT<'``Monad<Result<'T,'E>``>,y:ResultT<'``Monad<Result<'U,'E>``>,z:ResultT<'``Monad<Result<'V,'E>``>):ResultT<'``Monad<Result<'W,'E>``>= ResultT.map3 f x y z
71
71
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
-
static member inline(>>=)(x: ResultT<'``Monad<'Result<'T,'E>>``>, f: 'T->ResultT<'``Monad<'Result<'U,'E>>``>)= ResultT.bind f x
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
+
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 inlineTryWith(source:ResultT<'``Monad<'Result<'T,'E>>``>,f:exn ->ResultT<'``Monad<'Result<'T,'E>>``>)= ResultT (TryWith.Invoke (ResultT.run source)(ResultT.run << f))
76
-
static member inlineTryFinally(computation:ResultT<'``Monad<'Result<'T,'E>>``>,f)= ResultT (TryFinally.Invoke (ResultT.run computation) f)
77
-
static member inlineUsing(resource,f:_ ->ResultT<'``Monad<'Result<'T,'E>>``>)= ResultT (Using.Invoke resource (ResultT.run << f))
static member inlineLift(x:'``Monad<'T>``):ResultT<'``Monad<Result<'T,'E>>``>= ResultT.lift x
82
82
83
83
static member inlineThrow(x:'E)= x |> Error |> result |> ResultT : ResultT<'``Monad<Result<'T,'E>>``>
84
-
static member inlineCatch(ResultT x:ResultT<'``MonadError<'E1,'T>``>,f:'E1 ->_)=(ResultT (x >>=(fun a ->match a with Error l -> ResultT.run (f l)| Ok r -> result (Ok r)))): ResultT<'``Monad<Result<'T,'E2>>``>
84
+
static member inlineCatch(ResultT x:ResultT<'``Monad<Result<'T, 'E1>>``>,f:'E1 ->_)=(ResultT (x >>=fun a ->match a with Error l -> ResultT.run (f l)| Ok r -> result (Ok (r: 'T)))): ResultT<'``Monad<Result<'T,'E2>>``>
85
85
86
86
static member inlineLiftAsync(x:Async<'T>)= ResultT.lift (liftAsync x): ResultT<'``MonadAsync<'T>``>
87
87
88
-
static member inlineCallCC(f:('T -> ResultT<'``MonadCont<'R,Result<'U,'E>>``>) ->_):ResultT<'``MonadCont<'R, Result<'T,'E>>``>= ResultT (callCC <|fun c -> ResultT.run (f (ResultT << c << Ok)))
88
+
static member inlineCallCC(f:('T -> ResultT<'``MonadCont<'R,Result<'U,'E>>``>) ->_):ResultT<'``MonadCont<'R, Result<'T,'E>>``>= ResultT (callCC <|fun c -> ResultT.run (f (ResultT << c <<Result<'T, 'E>.Ok)))
89
89
90
90
static member inlineget_Ask()=(ResultT <<(map Ok)) ask : ResultT<'``MonadReader<'R,Result<'R,'E>>``>
91
91
static member inlineLocal(ResultT m :ResultT<'``MonadReader<'R2,Result<'R2,'E>>``>,f:'R1->'R2)= ResultT (local f m)
@@ -98,44 +98,44 @@ type ResultT<'``monad<'result<'t,'e>>``> with
98
98
99
99
static member inlinePass m = ResultT (ResultT.run m >>= either (map Ok << pass << result)(result << Error)): ResultT<'``MonadWriter<'Monoid,Result<'T,'E>>``>
100
100
101
-
static member inlineget_Get()= ResultT.lift get : ResultT<'``MonadState<'S,Result<_,'E>>``>
102
-
static member inlinePut(x:'S)= x |> put |> ResultT.lift : ResultT<'``MonadState<'S,Result<_,'E>>``>
101
+
static member inlineget_Get()= ResultT.lift get : ResultT<'``MonadState<'S,Result<_,'E>>``>
102
+
static member inlinePut(x:'S)= x |> put |> ResultT.lift : ResultT<'``MonadState<'S,Result<_,'E>>``>
/// Embed a Monad<'T> into a ChoiceT<'Monad<Choice<'T,'Error>>>
114
114
let inlinelift(x:'``Monad<'T>``):ChoiceT<'``Monad<Choice<'T,'Error>>``>=
115
115
if opaqueId falsethen x |> liftM Choice1Of2 |> ChoiceT
116
116
else x |> map Choice1Of2 |> ChoiceT
117
117
118
-
/// Transform a Choice<'T,'Error> to a ChoiceT<'Monad<Choice<'T,'Error>>>
119
-
let inlinehoist(x:Choice<'T,'Error>)= ChoiceT (result x): ChoiceT<'``Monad<Choice<'T,'Error>>``>
118
+
/// Transform a Choice<'T,'TError> to a ChoiceT<'Monad<Choice<'T,'TError>>>
119
+
let inlinehoist(x:Choice<'T,'TError>)= ChoiceT (result x): ChoiceT<'``Monad<Choice<'T,'TError>>``>
120
120
121
-
let inlinebind(f:'T->ChoiceT<'``Monad<'ChoiceT<'U,'E>>``>)(ChoiceT m:ChoiceT<'``Monad<'Choice<'T,'E>>``>)=(ChoiceT (m >>=(fun a ->match a with Choice2Of2 l -> result (Choice2Of2 l)| Choice1Of2 r -> run (f r))))
121
+
let inlinebind(f:'T->ChoiceT<'``Monad<ChoiceT<'U,'E>>``>)(ChoiceT m:ChoiceT<'``Monad<Choice<'T,'E>>``>)=(ChoiceT (m >>=(fun a ->match a with Choice2Of2 l -> result (Choice2Of2 l)| Choice1Of2 r -> run (f r))))
122
122
123
-
let inlineapply(ChoiceT f:ChoiceT<'``Monad<'Choice<('T -> 'U),'E>>``>)(ChoiceT x:ChoiceT<'``Monad<'Choice<'T,'E>>``>)= ChoiceT (map Choice.apply f <*> x): ChoiceT<'``Monad<'Choice<'U,'E>>``>
let inlinemap2(f:'T->'U->'V)(ChoiceT x:ChoiceT<'``Monad<Choice<'T,'E>>``>)(ChoiceT y:ChoiceT<'``Monad<Choice<'U,'E>>``>):ChoiceT<'``Monad<Choice<'V,'E>>``>= ChoiceT (lift2 (Choice.map2 f) x y)
126
126
127
-
typeChoiceT<'``monad<'choice<'t,'e>>``>with
127
+
typeChoiceT<'``monad<Choice<'t,'e>>``>with
128
128
129
-
static member inlineReturn(x:'T)= ChoiceT (result (Choice1Of2 x)): ChoiceT<'``Monad<'Choice<'T,'E>>``>
129
+
static member inlineReturn(x:'T)= ChoiceT (result (Choice1Of2 x)): ChoiceT<'``Monad<Choice<'T,'E>>``>
130
130
131
131
[<EditorBrowsable(EditorBrowsableState.Never)>]
132
-
static member inlineMap(x:ChoiceT<'``Monad<'Choice<'T,'E>>``>,f:'T->'U)= ChoiceT.map f x : ChoiceT<'``Monad<'Choice<'U,'E>>``>
132
+
static member inlineMap(x:ChoiceT<'``Monad<Choice<'T,'E>>``>,f:'T->'U)= ChoiceT.map f x : ChoiceT<'``Monad<Choice<'U,'E>>``>
133
133
134
134
[<EditorBrowsable(EditorBrowsableState.Never)>]
135
135
static member inlineLift2(f:'T->'U->'V,x:ChoiceT<'``Monad<Choice<'T,'E>``>,y:ChoiceT<'``Monad<Choice<'U,'E>``>):ChoiceT<'``Monad<Choice<'V,'E>``>= ChoiceT.map2 f x y
136
136
137
-
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
-
static member inline(>>=)(x: ChoiceT<'``Monad<'Choice<'T,'E>>``>, f: 'T->ChoiceT<'``Monad<'Choice<'U,'E>>``>)= ChoiceT.bind f x
137
+
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
+
static member inline(>>=)(x: ChoiceT<'``Monad<Choice<'T,'E>>``>, f: 'T->ChoiceT<'``Monad<Choice<'U,'E>>``>)= ChoiceT.bind f x
139
139
140
140
[<EditorBrowsable(EditorBrowsableState.Never)>]
141
141
static member inlineLift(x:'``Monad<'T>``):ChoiceT<'``Monad<Choice<'T,'E>>``>= ChoiceT.lift x
@@ -158,7 +158,7 @@ type ChoiceT<'``monad<'choice<'t,'e>>``> with
158
158
159
159
static member inlinePass m = ChoiceT (ChoiceT.run m >>= either (map Choice1Of2 << pass << result)(result << Error)): ChoiceT<'``MonadWriter<'Monoid,Choice<'T,'E>>``>
160
160
161
-
static member inlineget_Get()= ChoiceT.lift get : ChoiceT<'``MonadState<'S,Choice<_,'E>>``>
162
-
static member inlinePut(x:'S)= x |> put |> ChoiceT.lift : ChoiceT<'``MonadState<'S,Choice<_,'E>>``>
161
+
static member inlineget_Get()= ChoiceT.lift get : ChoiceT<'``MonadState<'S,Choice<_,'E>>``>
162
+
static member inlinePut(x:'S)= x |> put |> ChoiceT.lift : ChoiceT<'``MonadState<'S,Choice<_,'E>>``>
Copy file name to clipboardExpand all lines: src/FSharpPlus/Data/State.fs
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -124,7 +124,7 @@ module StateT =
124
124
let inlinemap(f:'T->'U)(StateT (m :_->'``Monad<'T*'S>``))= StateT (m >> Map.Invoke (fun(a,s')->(f a, s'))): StateT<'S,'``Monad<'U * 'S>``>
125
125
126
126
/// Combines two StateTs into one by applying a mapping function.
127
-
let inlinemap2(f:'T->'U->'V)(StateT x:StateT<'S,'``Monad<'T * 'S>``>)(StateT y:StateT<'S,'``Monad<'U * 'S>``>):StateT<'S,'``Monad<'V * 'S>``>= StateT (fun s -> x s >>=fun(g,s1)-> y s1 >>=fun(h,s2)-> result (f g h, s2)): StateT<'S,'``Monad<'V * 'S>``>
127
+
let inlinemap2(f:'T->'U->'V)(StateT x:StateT<'S,'``Monad<'T * 'S>``>)(StateT y:StateT<'S,'``Monad<'U * 'S>``>):StateT<'S,'``Monad<'V * 'S>``>= StateT (fun s -> x s >>=fun(g,s1)-> y s1 >>=fun(h,s2: 'S)-> result (f g h, s2)): StateT<'S,'``Monad<'V * 'S>``>
128
128
129
129
/// Combines three StateTs into one by applying a mapping function.
0 commit comments