@chrisseaton Should `#set` and `#complete` raise exceptions if the value has already been set?