Okay. Do C libraries have some way to hint when something shouldn't be freed, or is it all hands off? I'm also assuming C to be more complicated than it may be. When I think of a library it's usually multiple layers of abstraction, not purely function call on function call. If it were that simple (it prob is), then you could just put a simple destructor for each thing and the library won't rely on it so Nim can free it when it goes out of Nim's scope without issue. If the library only ever references itself and its own memory it should have no issue, and me freeing something on my implementation side won't break the library itself because they're isolated?