"Set VARIABLE/VALUE pairs with type warnings, and return the final VALUE.
This is like setq, but is meant for user options instead of
plain variables. This means that setopt will execute any
custom-set form associated with VARIABLE, and will emit a
warning if VALUE is not of the type expected by the user option.
Example: If the user option is declared to accept a `float',
set the option to 2.0 rather than 2, which is considered an `integer'.
Despite the warning, the user option will still be set to VALUE."