Issue #6083 has been updated by Yui NARUSE. Binary hackers can handle C structs even if it is a hidden private struct. So it should be enough simply to declare "struct RBignunm is not a public API". ---------------------------------------- Feature #6083: Hide a Bignum definition https://bugs.ruby-lang.org/issues/6083 Author: Koichi Sasada Status: Open Priority: Normal Assignee: Category: Target version: 2.0.0 Now, the struct RBignum which is a definition of Bignum in C is located in include/ruby/ruby.h. It means we can't change implementation of Bignum. For example, using GMP as Bignum representation. I propose to move the struct RBignum definition from include/ruby/ruby.h to bignum.c. I believe no one use struct RBignum directly (except core). It has possibility to break binary compatibility. -- http://bugs.ruby-lang.org/