Sourcetype basic = [ | `BOOL of bool| `CAML of Obj.t| `CHAR of char| `FLOAT of float| `INT of int| `INT64 of int64| `POINTER of Gpointer.boxed option| `STRING of string option
] Sourcetype 'a data_set = [ | basic| `OBJECT of 'a obj option| `INT32 of int32| `LONG of nativeint
] Sourcetype base_data = [ | `BOOLEAN| `CHAR| `UCHAR| `INT| `UINT| `LONG| `ULONG| `INT64| `UINT64| `ENUM| `FLAGS| `FLOAT| `DOUBLE| `STRING| `POINTER| `BOXED| `OBJECT
] Sourcetype fundamental_type = [ | `INVALID| `NONE| `INTERFACE| `PARAM| base_data
] Sourcetype signal_type = [ | `RUN_FIRST| `RUN_LAST| `NO_RECURSE| `ACTION| `NO_HOOKS
] Sourceexception Cannot_cast of string * string