+ e = to_enum<E>(u._grab<enum_type_t<E>>());
+ return u;
+}
+
+//
+// Recursive marshalling
+//
+
+inline marshall & operator<<(marshall &m, marshall &n) {
+ return m << n.content();
+}
+
+inline unmarshall & operator>>(unmarshall &u, unmarshall &v) {
+ v = unmarshall(u._grab<string>(), false);