Skip to content

Commit 9d646a6

Browse files
authored
Rename iter to iterM and add a (non-M) iter
1 parent 1e0ad43 commit 9d646a6

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/FSharpPlus/List.fs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ module ListT =
8484
result res : 'miu)
8585
collect f (input: ListT<'mt>) : ListT<'mu>
8686

87-
let inline singleton (v:'t) =
87+
let inline singleton (v: 't) =
8888
let mresult x = result x
8989
let _mnil = (result Unchecked.defaultof<'t> : 'mt) >>= konst (mresult ListTNode<'mt,'t>.Nil ) : 'mit
9090
wrap ((mresult <| ListTNode<'mt,'t>.Cons (v, (wrap (mresult ListTNode<'mt,'t>.Nil): ListT<'mt> ))) : 'mit) : ListT<'mt>
@@ -103,12 +103,14 @@ module ListT =
103103
| Nil -> failwith "empty list"
104104
| Cons (_: 't, tail) -> unwrap tail) |> wrap
105105

106-
let inline iter action lst =
107-
let rec loop (seq: ListT<'MT>) (action: 'T -> '``M<unit>``) : '``M<unit>`` =
108-
unwrap seq >>= function
106+
let inline iterM (action: 'T -> '``M<unit>``) (lst: ListT<'MT>) : '``M<unit>`` =
107+
let rec loop lst action =
108+
unwrap lst >>= function
109109
| Nil -> result ()
110110
| Cons (h, t) -> action h >>= (fun () -> loop t action)
111111
loop lst action
112+
113+
let inline iter (action: 'T -> unit) (lst: ListT<'MT>) = iterM (action >> singleton) lst
112114

113115
let inline lift (x: '``Monad<'T>``) = wrap (x >>= (result << (fun x -> Cons (x, empty () )))) : ListT<'``Monad<'T>``>
114116

0 commit comments

Comments
 (0)