adding an "opaque" type that represents a type of unknown size.
"&opaque" is the analogue of C++'s "void*"