Hi Tristan,
Ah, what you want is the use of 'void *' for System.Address. We didn't choose that because the semantic of System.Address (which includes arithmetic on the whole address space) doesn't match the void * one.
void* arithmetic of this kind exists, it's a gcc extension to C :)
But, you can try to implement this scheme by modifying the runtime. I don't know if this is a small work or not.
It crashes the front-end, so it's not trivial. Ciao, Duncan.