[tag=DT | □=□ | □] □ □
[tag=DT | lemma=□ | □] □ □
[tag=DT | tag=□ | □] □ □
The type space is divided into required and optional portions . Implementors should implement the required portion of the type space plus that part of the optional type space which is appropriate for their particular entity . Given a type t that is parametric in the type variables a ,..., b and an assignment of Galois connections ( abs_a , con_a ) , ..., ( abs_b , con_b ) to the type variables we show how to construct a Galois connection ( abs_t , con_t ) and we use this Galois connection to construct a " free " theorem from the type t. Danvy has shown how to implement a variant of C 's printf function in a statically typed language . Some flags indicate variant semantics for certain situations ; others are used to indicate that certain fields in the type object ( or in the extension structures referenced via tp_as_number , tp_as_sequence , tp_as_mapping , and tp_as_buffer ) that were historically not always present are valid ; if such a flag bit is clear , the type fields it guards must not be accessed and must be considered to have a zero or NULL value instead . Further , all such references are stored as the type Object . As type space we allow continua and describe populations in one colony as measures on the type space . This is the type object 's reference count , initialized to 1 by the PyObject_HEAD_INIT macro . This may be useful in identifying an atom uniquely for a typed command since several atoms may have the same label in a packing diagram . Now all basic types have been unified with their factory functions and therefore the type names are available to be consistently used to refer to the type object . Remember , this is the military we are talking about , not some typing pool at the downtown firm . See section Accessing Type Meta-Objects , the Type object must be generated somewhere , usually in the C++ file that defines the accessors for the subtype .