import { Operator } from './types'; export function filter(predicate: (a: A) => boolean): Operator { return source => (_, sink) => { source(0, (t, d) => { if (t === 1) { if (predicate(d)) sink(t, d); } else sink(t, d); }); }; }