We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 3dfad1c commit 20bbea6Copy full SHA for 20bbea6
src/FSharpPlus/List.fs
@@ -123,6 +123,11 @@ module ListT =
123
| Nil -> return Nil
124
else return Nil }
125
loop count (input: ListT<'MT>)
126
+
127
+ let inline filterM (f: 'T -> ListT<'``M<bool>``>) (input: ListT<'MT>) : ListT<'MT> =
128
+ input |> ListT.bind (fun v -> f v |> ListT.bind (fun b -> if b then singleton v else empty ()))
129
130
+ let inline filter f (input: ListT<'MT>) : ListT<'MT> = filterM (f >> singleton) input
131
132
let inline run (lst: ListT<'MT>) : '``Monad<list<'T>>`` =
133
let rec loop acc x = unwrap x >>= function
0 commit comments