LibCircuit.BoolSourcexor a b returns the exclusive disjunction of a and b.
ifthenelse c t e returns t if c is true and e otherwise.
swap c a b returns the pair (b, a) if c is true and (a, b) otherwise.
band_list bs returns the conjunction of the list of booleans bs.