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