In reply to @eightbit_dboy "I'm talking about just": I think I can tell you that you first want to wrap some raw C functions but make it private and then you can build functions on top of them to take advantage of Nim's type system https://github.com/ZoomTen/nim-gb-test/tree/master/nim_src/gbdk Futhark's author made a write-up on wrapping C stuff here too: https://peterme.net/wrapping-c-libraries-in-nim.html