+/* Variable names. */
+const char *var_get_name (const struct variable *);
+void var_set_name (struct variable *, const char *);
+enum dict_class var_get_dict_class (const struct variable *);
+
+int compare_vars_by_name (const void *, const void *, const void *);
+unsigned hash_var_by_name (const void *, const void *);
+
+int compare_var_ptrs_by_name (const void *, const void *, const void *);
+unsigned hash_var_ptr_by_name (const void *, const void *);
+
+int compare_var_ptrs_by_dict_index (const void *, const void *, const void *);
+
+struct fmt_spec;
+
+/* Types and widths of values associated with a variable. */
+enum val_type var_get_type (const struct variable *);
+int var_get_width (const struct variable *);
+void var_set_width (struct variable *, int width);
+void var_set_width_and_formats (struct variable *v, int new_width,
+ const struct fmt_spec *print, const struct fmt_spec *write);
+
+bool var_is_numeric (const struct variable *);
+bool var_is_alpha (const struct variable *);
+
+/* Variables' missing values. */
+const struct missing_values *var_get_missing_values (const struct variable *);
+void var_set_missing_values (struct variable *, const struct missing_values *);
+void var_clear_missing_values (struct variable *);
+bool var_has_missing_values (const struct variable *);
+
+enum mv_class var_is_value_missing (const struct variable *, const union value *);
+enum mv_class var_is_num_missing (const struct variable *, double);
+enum mv_class var_is_str_missing (const struct variable *, const uint8_t[]);
+
+/* Value labels. */
+const char *var_lookup_value_label (const struct variable *,
+ const union value *);
+struct string;
+void var_append_value_name (const struct variable *, const union value *,
+ struct string *);
+void var_append_value_name__ (const struct variable *, const union value *,
+ enum settings_value_show, struct string *);
+
+bool var_has_value_labels (const struct variable *);
+const struct val_labs *var_get_value_labels (const struct variable *);
+void var_set_value_labels (struct variable *, const struct val_labs *);
+
+bool var_add_value_label (struct variable *,
+ const union value *, const char *);
+void var_replace_value_label (struct variable *,
+ const union value *, const char *);
+void var_clear_value_labels (struct variable *);
+
+/* Print and write formats. */
+const struct fmt_spec *var_get_print_format (const struct variable *);
+void var_set_print_format (struct variable *, const struct fmt_spec *);
+const struct fmt_spec *var_get_write_format (const struct variable *);
+void var_set_write_format (struct variable *, const struct fmt_spec *);
+void var_set_both_formats (struct variable *, const struct fmt_spec *);
+
+struct fmt_spec var_default_formats (int width);
+
+/* Variable labels. */
+const char *var_to_string (const struct variable *);
+const char *var_get_label (const struct variable *);
+void var_set_label (struct variable *, const char *label);
+void var_clear_label (struct variable *);
+bool var_has_label (const struct variable *);
+
+/* How data is measured. */
+enum measure