+selected. How the value from the elements is derived depends on three
+things: the parameters C<default_sub> (unset by default) and
+C<default_key> (default: "selected") as well as the element's type.
+
+=over 4
+
+=item * If C<default_sub> is a code reference then that reference is
+called with the element as its only parameter. The return value is the
+value compared to the value from the elements in C<\@collection>.
+
+=item * If the element in question is a scalar then its value is used.
+
+=item * If the element is a hash then C<default_key> names the index
+into the hash used as the value to select by default.
+
+=item * If the element is a blessed object then C<default_key> names
+the method to call on the object. That method's return value is used
+as the value to select by default.
+
+=back
+
+See the synopsis for an example using C<default> with Rose::DB::Object
+instances.