/* regular struct */ struct Named1 { field: int; } struct @free(test_free) Named2 { field: int; } /* typedef */ type Typedef1: int; type @free(def_free) Typedef2: int; /* opaque */ struct Opaque1; struct @free(opaque_free) Opaque2; /* pointers */ type Pointer1: char *; type Pointer2: free(char *, ptr_free); class Free_Func { methods { foo { params { int idx; } return: own(char*); } } }