Anyone know how badly things break if we changed things like typedef struct { const gsl_rng_type * type; void *state; } gsl_rng; to typedef struct gsl_rng { const gsl_rng_type * type; void *state; } gsl_rng; so that some of our opaque types might be forward declared in C++ code? - Rhys