How implementation details become ABI: a case study
lwn.net