fir = grender(g => {
const taps = [0.09, 0.31, 0.44, 0.31, 0.09];
const [x, y] = 'x y'.split(' ').map(name => g(name));
const xl = x();
taps.reduce(FIReducer(g), [xl, xl])[1](y);
g.edges.map(perEdgeSet(16));
return taps.reduce((res, tap) => {
res[tap] = {data: p => `assign ${p.i[0].wire} = (${p.t[0].wire} * ${(tap * (1 << 14))|0}) >> 14;`}
return res;
}, {});
})