anchor.diff:    else
       raw = trim(str(n=self%magnitude))
     endif
  -  if (self%is_unit_defined()) raw = raw//self%unit%symbol
  +  if (self%is_unit_defined()) then
  +    raw = raw//self%unit%symbol
  +    if (present(with_dimensionality)) then
  +      if (with_dimensionality) raw = raw//' '//self%unit%dimensionality
  +    endif
  +  endif
     !---------------------------------------------------------------------------------------------------------------------------------
     endfunction stringify
   
  
positive.code: 
    !---------------------------------------------------------------------------------------------------------------------------------
    if (lhs%is_unit_defined().and.rhs%is_unit_defined()) then
      if (lhs%unit%is_compatible(rhs%unit)) then
        call opr%set(magnitude=(lhs%magnitude + rhs%unit%scale_factor*rhs%magnitude/lhs%unit%scale_factor), &
                     unit=lhs%unit, units_system=lhs%units_system)
      else
        write(stderr, '(A)')'error: left and right terms of computation "l+r" have incompatible units!'
        write(stderr, '(A)')'result is nullified with units set equal to the one of left term!'
        call opr%set(unit=lhs%unit, units_system=lhs%units_system)
      endif
    else
      ! dimensionless quantities assumed
  
negative.code:   !---------------------------------------------------------------------------------------------------------------------------------
    endsubroutine set
  
    pure function stringify(self, format, with_dimensionality) result(raw)
    !---------------------------------------------------------------------------------------------------------------------------------
    !< Return a string representaion of the quantity with unit symbol.
    !---------------------------------------------------------------------------------------------------------------------------------
    class(qreal), intent(in)           :: self                !< The quantity.
    character(*), intent(in), optional :: format              !< Format to pring magnitude.
    logical,      intent(in), optional :: with_dimensionality !< Insert also the quantity dimensionality.
    character(len=:), allocatable      :: raw                 !< Raw characters data.
    !---------------------------------------------------------------------------------------------------------------------------------
  
    !---------------------------------------------------------------------------------------------------------------------------------
  