\in2 ->
let firstBitMarker = ~~(loop [ i/=0 | i <- [0..31] ])
carry_out = reg (mux2 firstBitMarker zero carry_in)
carry_in = maj3 carry_out in1 in2
in ~~xor3 carry_out in1 in2
\in2 ->
let firstBitMarker = ~~(loop [ i/=0 | i <- [0..31] ])
carry_out = reg (mux2 firstBitMarker zero carry_in)
carry_in = maj3 carry_out in1 in2
in ~~xor3 carry_out in1 in2