1open Wonka_types; 2 3let map = f => 4 curry(source => 5 curry(sink => 6 source((. signal) => 7 sink(. 8 switch (signal) { 9 | Start(x) => Start(x) 10 | Push(x) => Push(f(. x)) 11 | End => End 12 }, 13 ) 14 ) 15 ) 16 );