On this page:
make-union-type
_ union
union?
union-ref
union-set!
union-ptr

3.9 C Union Types

(make-union-type type ...+)  ctype?
  type : ctype?
The primitive type constructor for creating new C union types. Like C struct types, union types are new primitive types with no conversion functions associated. Unions are always treated like structs.

(_union type ...+)  ctype?
  type : ctype?
Creates a union type whose Racket representation is a union that works with union-ref and union-set!. The union is not copied; the Racket representation is backed by the underlying C representation.

(union? v)  boolean?
  v : any/c
Returns #t if v is a Racket representation of a C value via _union, #f otherwise.

(union-ref u i)  any/c
  u : union?
  i : exact-nonnegative-integer?
Extracts a variant from a union.

(union-set! u i v)  void?
  u : union?
  i : exact-nonnegative-integer?
  v : any/c
Sets a variant in a union..

(union-ptr u)  cpointer?
  u : array?
Extracts the pointer for a union’s storage.