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