fsm_circuit_builder = ({input, nand, and, not, mux, output, high, low})=> {
const [a, b, q0, q1] = 'a, b, q0, q1'.split(', ').map(input),
LOW = low(),
n_b = nand(b, b),
n_q0 = nand(q0, q0),
_6 = nand(q0, b),
_5 = nand(b, _6),
_3 = nand(n_q0, n_b),
_2 = nand(_3, _3),
_4 = mux(q1, _5, b),
_1 = mux(q1, _2, b),
q0next = mux(a, LOW, _4),
q1next = mux(a, _1, q0)
output('q0next', q0next)
output('q1next', q1next)
}