Hmm, maybe. I think the core problem here is that size_t is already typdef'd to ulong, but Go doesn't like you using different typenames, even when they paper over the same bit layout. 

It feels like it should be possible, but I can't think how we could use a typedef to solve this.