Merged requested to merge wip/backend-as-record into master
Closes #20927 (closed).
With this change, the value constructors of the
Backend sum type are
no longer exposed. Decisions that were formerly made by asking "is
the current back end equal to (or different from) this named value
constructor?" are now made by interrogating the back end about its
properties. The properties and the functions that interrogate them
are defined in
A record of the discussion can be found in !7442 (merged).