`type 'a typ`

`val void : unit typ`
`val char : char typ`
`val schar : int typ`
`val short : int typ`
`val int : int typ`
`val long : Signed.long typ`
`val llong : Signed.llong typ`
`val nativeint : nativeint typ`
`val int8_t : int typ`
`val int16_t : int typ`
`val int32_t : int32 typ`
`val int64_t : int64 typ`

`module Intptr : Signed.S`

`val intptr_t : Intptr.t typ`

`module Ptrdiff : Signed.S`

`val ptrdiff_t : Ptrdiff.t typ`
`val camlint : int typ`
`val uchar : Unsigned.uchar typ`
`val bool : bool typ`
`val uint8_t : Unsigned.uint8 typ`
`val uint16_t : Unsigned.uint16 typ`
`val uint32_t : Unsigned.uint32 typ`
`val uint64_t : Unsigned.uint64 typ`
`val size_t : Unsigned.size_t typ`
`val ushort : Unsigned.ushort typ`
`val sint : Signed.sint typ`
`val uint : Unsigned.uint typ`
`val ulong : Unsigned.ulong typ`
`val ullong : Unsigned.ullong typ`

`module Uintptr : Unsigned.S`

`val uintptr_t : Uintptr.t typ`
`val float : float typ`
`val double : float typ`
`val ldouble : LDouble.t typ`
`val complex32 : Stdlib.Complex.t typ`
`val complex64 : Stdlib.Complex.t typ`
`val complexld : ComplexL.t typ`
`val ptr : 'a typ -> 'a Ctypes_static.ptr typ`
`val ptr_opt : 'a typ -> 'a Ctypes_static.ptr option typ`
`val string : string typ`
`val string_opt : string option typ`
`val ocaml_string : string Ctypes_static.ocaml typ`
`val ocaml_bytes : bytes Ctypes_static.ocaml typ`
`val array : int -> 'a typ -> 'a Ctypes_static.carray typ`
`val bigarray : < ba_repr : 'b; bigarray : 'bigarray; carray : 'c; dims : 'dims; element : 'a; layout : Stdlib.Bigarray.c_layout; > Ctypes_static.bigarray_class -> 'dims -> ('a, 'b) Stdlib.Bigarray.kind -> 'bigarray typ`
`val fortran_bigarray : < ba_repr : 'b; bigarray : 'bigarray; carray : 'c; dims : 'dims; element : 'a; layout : Stdlib.Bigarray.fortran_layout; > Ctypes_static.bigarray_class -> 'dims -> ('a, 'b) Stdlib.Bigarray.kind -> 'bigarray typ`
`val typ_of_bigarray_kind : ('a, 'b) Stdlib.Bigarray.kind -> 'a typ`

`type ('a, 't) field`

`val structure : string -> 's Ctypes_static.structure typ`
`val union : string -> 's Ctypes_static.union typ`
`val field : ('s, [< `Struct | `Union ] as 'b) Ctypes_static.structured typ -> string -> 'a typ -> ('a, ('s, 'b) Ctypes_static.structured) field`
`val seal : ('a, [< `Struct | `Union ]) Ctypes_static.structured typ -> unit`
`val view : ?⁠format_typ:((Stdlib.Format.formatter -> unit) -> Stdlib.Format.formatter -> unit) -> ?⁠format:(Stdlib.Format.formatter -> 'b -> unit) -> read:('a -> 'b) -> write:('b -> 'a) -> 'a typ -> 'b typ`
`val typedef : 'a typ -> string -> 'a typ`
`val abstract : name:string -> size:int -> alignment:int -> 'a Ctypes_static.abstract typ`
`val lift_typ : 'a Ctypes_static.typ -> 'a typ`

`type 'a fn``= 'a Ctypes_static.fn`

`val (@->) : 'a typ -> 'b fn -> ('a -> 'b) fn`
`val returning : 'a typ -> 'a fn`

`type 'a static_funptr``= 'a Ctypes_static.static_funptr`

`val static_funptr : 'a fn -> 'a Ctypes_static.static_funptr typ`

`type 'a const`

`val constant : string -> 'a typ -> 'a const`
`val enum : string -> ?⁠typedef:bool -> ?⁠unexpected:(int64 -> 'a) -> ('a * int64 const) list -> 'a typ`