1open Wonka_types;
2open Wonka_helpers;
3
4let skipWhile = f =>
5 curry(source =>
6 curry(sink => {
7 let skip = ref(true);
8
9 captureTalkback(source, (. signal, talkback) =>
10 switch (signal) {
11 | Push(x) when skip^ =>
12 if (f(. x)) {
13 talkback(. Pull);
14 } else {
15 skip := false;
16 sink(. signal);
17 }
18 | _ => sink(. signal)
19 }
20 );
21 })
22 );