I've noticed that the forth-swig output doesn't really do what the swig documentation says it does, specifically turning pass-struct-by-value functions into pass-by-reference ones (http://www.swig.org/Doc3.0/SWIG.html#SWIG_nn22). There's an example of how to do exactly this with casts in the part of the gforth manual about libcc, and casts that look just like that are already generated for callbacks that take structs. So why aren't they being generated for c-functions? Wrappers are failing to compile because it's just assuming that a struct being passed to a C function is a single cell, even as it's fully aware that it can't assume that about structs being passed *from* C.
Where could I read about the specifics of the work on forth-swig (aside from "read the source" - I am unfamiliar with the internals of swig)?