Version 0.27
    o Moved missing values frequencies in the attributes, for functions
      wsummary() and wtable()
    o Fixed bug interpreting a multi-byte character value as missing
    o New function wmeasures() to allow for multiple summaries
    o New function valid_na_index() to validate the na_index correctness
    o Discard inconsistent declared missing metadata before it can affect
      formatting, summaries, conversions or data-frame operations
    o New optional argument "decimals" in function declared(), to assist
      in values display

Version 0.26
    o Weighted functions now have a default "w*" naming, with "w_*" still
      available as an alias, for backward compatibility
    o Changed default for argument "values" in function wtable(), now TRUE
    o Tables of frequencies now print the values to the left of the labels
    o Extended weighted.mean() for objects of class "declared"
    o Declared tables of frequencies now play nicely with dotchart()
    o Improved internal function to check measurement levels
    o Removed argument "margin" from function wtable()
    o New internal function direct_declared()

Version 0.25
    o Adapted class methods for declared objects with "Date" inputs
    o Improved function sum() for declared objects
    o Fixed bug in undeclare() with numeric values and character (declared)
      missing values (thanks to Kyle Husmann for the report)
    o New methods for vec_proxy() and vec_restore() for objects of class
      "declared" (thanks to Kyle Husmann for the PR)

Version 0.24
    o Objects of class "Date" are now accepted as input for a declared object
    o The package no longer automatically coerces from numeric to integer
    o Improved version of w_table() for duplicated labels
    o Fixed bug in as.haven() for declared missing values with no labels
      (thanks to Marijana Glavica for the report)

Version 0.23
    o Maintenance work to comply with the CRAN related issues generated by the
      new behavior of the base function is.atomic()

Version 0.22
    o Improved treatment of extended missing values, via imported haven objects
    o w_table() now correctly display the missing values, in the declared order
    o New argument "vlabel" in function w_table(), to print the variable label,
      if present

Version 0.21
    o Function declared() now recognize a "labels" attribute of the input
      object, if it already exists
    o Fixed bug in function measurement(), when dealing with variables with
      missing range only (no discrete missing values declared)
    o To prevent abrupt errors when subsetting a data frame with declared
      variables, the default action is now to impose unique value labels
    o The function labels() gains a new argument "print_as_df" (TRUE by default)
      to print the labels as a data frame
    o Printing a declared object now display a maximum of seven value labels,
      with a message indicating how many are left out
    o New functions w_IQR() and w_fivenum()

Version 0.20
    o Base functions is.element(), %in% and match() now properly recognize
      declared objects
    o Fixed bug affecting declared character objects, via as.character.declared()
    o New functions anyNAempty() and anyNAdeclared()

Version 0.19
    o More effort on meeting Good Practices for pkgcheck()
    o Fixed bug hapenning on r-devel, to silence CRAN errors

Version 0.18
    o Improved method for rbind() data frames, taking care of declared variables
    o Function value_labels() has been replaced with the generic base function
      labels(), and the function variable_label() has been replaced with the
      function label()
    o Changed default for as.factor(), with values and (where available) levels
      (thanks to Daniel Antal for the report)
    o New generic function drop_na() to drop information about the declared
      missing values

Version 0.17
    o Correctly determine the object mode, function of both value labels and
      input values (especially when all input values are empty NA values)
    o New argument "measurement" in function declared()
    o New function measurement(), to query and allocate measurement levels

Version 0.16
    o New logical argument "values" in the S3 method for as.character()
    o Removed aliases as_declared() and as_haven() from the namespace
    o Fixed as.haven() which should return double objects

Version 0.15
    o Class method for many / most primitive functions, with declared objects
    o Fixed bug in w_table() affecting zero frequency categories
    o Dropped alias frtable() from function w_table()
    o New function is.empty(), testing the presence of undeclared missing values
    o Main function declare() is now generic, allowing flexibility to create
      custom methods for any other classes of objects
    o Removed dependency on package admisc, by incorporating the necessary
      functionality as internal functions

Version 0.13
    o New functions w_mode() and w_standardize()
    o Fixed x_summary(), summaries should not be rounded by default
    o Fixed w_mean() to weight negative values
    Thanks to an anonymous reviewer for reporting and suggesting the following:
    o New argument "drop" in function undeclare()
    o Fixed bug in the class methods for head() and tail()
    o Function declared now duly recognizes input factors
    o Extended as.factor() for objects of class "declared"
    o Added proper class methods for primitive arithmetic operations
    o New functions as.declared(), is.declared()
    o Added explanatory documentation (for instance in the DESCRIPTION file) to
      explain the reasons for reimplementing some of the base functions

Version 0.12
    o New function w_summary()
    o Functions w_table() and w_quantile() now properly deal with missing weights
    o New argument "trim" in function w_mean()

Version 0.11
    o Fixed w_table(), an internal object was inadvertently returned
    o Improved printing of crosstables

Version 0.10
    o New functions w_mean(), w_var() and w_sd(), w_quantile and w_median, to
      obtain weighted versions of mean, variance and standard deviation,
      quantiles and median, respectively, adapted to declared objects
    o Fixed a bug in as.haven.declared(), when all values are (declared) missing
      and labels are not numeric
    o Argument "weight" changed to "wt" in w_table()
    o New arguments in function w_table(): "observed" to only print observed
      values, and "margin" to calculate proportions in crosstabs
    o Function w_table() now accepts a second argument "y" to create crosstabs
    o Function frtable() renamed to w_table() standing for weighted table

Version 0.9
    o New argument "weight" in function frtable(), allowing to weight not only
      valid but also missing values
    o More robust function frtable() in treating declared values with
      overlapping labels (e.g. hierarchical ISCO codes and categories)
    o Fixed a bug in declared() when all values are completely missing

Version 0.8
    o Improved treatment of equality and non-equality, now accepting labels as
      well as values
    o Reverted functionality to not dropping the attributes in arithmetic
      operations, this is now left to the users' preference

Version 0.7
    o Fixed bug saving declared data frames as .csv files
    o as.declared() now retains the "format.spss" attribute, if existing

Version 0.6
    o Improved treatment of arithmetic operations, attributes are no longer
      propagated (thanks to Randall Pruim for the suggestion)
    o Modified as.haven() for objects of class "declared", to avoid a bug in
      package ReadStat that prevents exporting missing values to SPSS for
      integer variables

Version 0.5
    o Initial version
