new_fieldtype() creates a new field type. The application programmer must write the function field_check, which validates the field value,
and the function char_check, which validates each character. free_fieldtype() frees the space allocated for the field type.
By associating function pointers with a field type, set_fieldtype_arg() connects to the field type additional arguments necessary for a
set_field_type() call. Function mak_arg allocates a structure for the field specific parameters to set_field_type() and returns a pointer
to the saved data. Function copy_arg duplicates the structure created by make_arg. Function free_arg frees any storage allocated by
make_arg or copy_arg.
The form_driver() requests REQ_NEXT_CHOICE and REQ_PREV_CHOICE let the user request the next or previous value of a field type comprising
an ordered set of values. set_fieldtype_choice() allows the application programmer to implement these requests for the given field type. It
associates with the given field type those application-defined functions that return pointers to the next or previous choice for the field.
link_fieldtype() returns a pointer to the field type built from the two given types. The constituent types may be any application-defined
or pre-defined types.

RETURN VALUES

Routines that return pointers always return NULL on error. Routines that return an integer return one of the following:
E_OK The function returned successfully.
E_SYSTEM_ERROR System error.
E_BAD_ARGUMENT An argument is incorrect.
E_CONNECTED Type is connected to one or more fields.