docs: def synthesize_member(member_name,
                        default = None,
                        contract = None,
                        read_only = False,
                        getter_name = None,
                        setter_name = None,
                        private_member_name = None):
      """
      When applied to a class, this decorator adds getter/setter methods to it and overrides the constructor in order to set\
      the default value of the member.
      By default, the getter will be named ``member_name``. (Ex.: ``member_name = 'member' => instance.member()``)
      
      By default, the setter will be named ``member_name`` with 'set\_' prepended it to it.
      (Ex.: ``member_name = 'member' => instance.set_member(...)``)
  
      By default, the private attribute containing the member's value will be named ``member_name`` with '_' prepended to it.
  
      Naming convention can be overridden with a custom one using :meth:`naming_convention <naming_convention>` decorator.
  
      :param member_name: Name of the member to synthesize.
      :type member_name: str
      :param default: Member's default value.
      :type default: *
      :param contract: Type constraint. See `PyContracts <http://andreacensi.github.com/contracts/>`_
      :type contract: *
      :param read_only: If set to ``True``, the setter will not be added to the class.
      :type read_only: bool
      :param getter_name: Custom getter name. This can be useful when the member is a boolean. (Ex.: ``is_alive``)
      :type getter_name: str|None
      :param setter_name: Custom setter name.
      :type setter_name: str|None
      :param private_member_name: Custom name for the private attribute that contains the member's value.
      :type private_member_name: str|None
      
      :raises: :class:`DuplicateMemberNameError` when two synthetic members have the same name.
  """
      accessorDelegate = AccessorDelegate(namingConvention = NamingConventionUnderscore(),
                                         getterName = getter_name,
                                         setterName = setter_name)
      return SyntheticDecoratorFactory().syntheticMemberDecorator(memberName = member_name,
                                                                  defaultValue = default,
                                                                  contract = contract,
                                                                  readOnly = read_only,
                                                                  privateMemberName = private_member_name,
                                                                  memberDelegate = accessorDelegate)