1open Wonka_types;
2
3let make = f =>
4 curry(sink => {
5 let teardown = ref((.) => ());
6
7 sink(.
8 Start(
9 (. signal) =>
10 switch (signal) {
11 | Close => teardown^(.)
12 | Pull => ()
13 },
14 ),
15 );
16
17 teardown :=
18 f(. {
19 next: value => sink(. Push(value)),
20 complete: () => sink(. End),
21 });
22 });