Experimenting with gobject introspection by building up a robust marshaling stack.