I would just handle this at instantiation with something like `all(is_literal(a) or a.is_Boolean for a in args)` where `is_literal` was a recently added function, as I recall.