## 7.2 Data types

The following data types are defined in the interface:

`OZ_Return`

  > `typedef enum {OZ_FAILED=0, OZ_ENTAILED=1, ... } OZ_Return;`

  Return values for C functions to be interfaced to Oz.

`OZ_CFun`

  > `typedef OZ_Return (*OZ_CFun)(OZ_Term * [])`

  Signature of an interface function.

`OZ_Term`

  > `typedef ... OZ_Term;`

  This is the abstract data type for Oz values.

`OZ_C_proc_interface`

  > > `typedef struct {
  > > const char * name;
  > > short inArity;
  > > short outArity;
  > > OZ_CFun func;
  > > } OZ_C_proc_interface;`

  This structure declares the signature of a function being exported from a native module.