Consider accomplishing this by making them immutable, and having `with*` methods return new, immutable builder instances.