``Function`` is defined twice, as is the case for ``Options``, ``DataType`` and ``ErrorMsg``. If you're defining property methods, you can define them as private (e.g., ``_function_setter``)