Allow dereference of foreign unions.  This enables:

typedef enum { /*< prefix=CLUTTER >*/
  CLUTTER_NOTHING = 0,
  CLUTTER_KEY_PRESS,
  /* ... snip ... */
} ClutterEventType;

union _ClutterEvent
{
  /*< private >*/
  ClutterEventType type;

  ClutterAnyEvent any;
  /* ... snip ... */
};
typedef union _ClutterEvent ClutterEvent;

(c-let ((event clutter-event))
   (c-ref event clutter-event :type))