### 8.1.2 Functions

`Oz_Boolean OZ_isExtension(OZ_Term t)`

  Tests if the OZ_Term is an extension (`t` must be dereferenced first).

`OZ_Extension * OZ_getExtension(OZ_Term t)`

  Unbox the OZ_Term into an extension (`t` must be dereferenced).

`OZ_Term OZ_extension(OZ_Extension *e)`

  Box the Extension into an OZ_Term.

`typedef OZ_Term (*oz_unmarshalProcType)(MarshalerBuffer *)`
`typedef OZ_Term (*oz_suspUnmarshalProcType)(ByteBuffer*, GTAbstractEntity* &)`
`typedef OZ_Term (*oz_unmarshalContProcType)(ByteBuffer*, GTAbstractEntity*)`
`void oz_registerExtension(int id, oz_unmarshalProcType, oz_suspUnmarshalProcType, oz_unmarshalContProcType)`

  Registers unmarshal procedures for the extension with the given id. The second and the third procedures can be 0 if marshaling for Oz distribution for the given id is not defined.

`int OZ_newUniqueId()`

  Returns a new unique number usable as the id of an extension.