type basic = [
| `BOOL of bool
| `CAML of Stdlib.Obj.t
| `CHAR of char
| `FLOAT of float
| `INT of int
| `INT64 of int64
| `POINTER of Gpointer.boxed option
| `STRING of string option
]
type data_get = [
| basic
| `NONE
| `OBJECT of unit obj option
]
type 'a data_set = [
| basic
| `OBJECT of 'a obj option
| `INT32 of int32
| `LONG of nativeint
]
type base_data = [
| `BOOLEAN
| `CHAR
| `UCHAR
| `INT
| `UINT
| `LONG
| `ULONG
| `INT64
| `UINT64
| `ENUM
| `FLAGS
| `FLOAT
| `DOUBLE
| `STRING
| `POINTER
| `BOXED
| `OBJECT
]
type data_conv_get = [
| `INT32 of int32
| data_get
]
type ('a, 'b) property = {
name : string;
conv : 'b data_conv;
}
type fundamental_type = [
| `INVALID
| `NONE
| `INTERFACE
| `PARAM
| base_data
]
type signal_type = [
| `RUN_FIRST
| `RUN_LAST
| `NO_RECURSE
| `ACTION
| `NO_HOOKS
]
exception Cannot_cast of string * string
val is_a : 'a obj -> string -> bool
val try_cast : 'a obj -> string -> 'b obj
val get_oid : 'a obj -> int
val unsafe_cast : 'a obj -> 'b obj
val coerce : 'a obj -> unit obj
val coerce_option : 'a obj option -> unit obj option
val unsafe_create : classe:string -> 'a param list -> 'a obj
val unsafe_unref : 'a obj -> unit
val get_ref_count : 'a obj -> int
val set_params : 'a obj -> 'a param list -> unit
module Type : sig ... end
module Value : sig ... end
module Data : sig ... end