Wrote this today: https://iceworks.cc/g/immortal-abis/
Examples are currently in C because the C ABI is the only one that is really defined across languages. While I don't think there are many Nim libraries being consumed by non-Nim clients it will happen in time (or even Nim-Nim projects, if a plugin API is involved, may run in to this.)
It's complete as far as I don't know anything else to add yet. But probably needs editing etc. Hopefully it helps someone move closer to not breaking code unnecessarily quite as often.
Fortunately in Nim we have many options to bury these ideas underneath inline procs and templates so we don't have to deal with them much. But I do have a better understanding now of why old C libraries have those weird getter/setter functions that didn't make sense at the time.
when i set up writefreely i think the routing for the page was futzed. the files are amusingly still on the server.
i'll be taking writefreely down soonish so the link should be back up then.