--- /dev/null
+@type bool {
+ .ctype = unsigned : 1;
+ .check = (luaL_checkinteger($L, $$) != 0);
+ .push = lua_pushboolean($L, $$);
+};
+
+@type quadopt_t {
+ .ctype = unsigned : 2;
+ .check = luaM_checkquadopt($L, $$);
+ .push = lua_pushinteger($L, $$);
+};
+
+@type string_t {
+ .ctype = char *;
+ .check = luaL_checkstring($L, $$);
+ .push = lua_pushstring($L, $$);
+ .ctor = m_strdup($$);
+ .dtor = p_delete($$);
+};
+
+@type path_t : string_t {
+ .ctor = luaM_pathnew($$);
+};
+
+@type rx_t {
+ .ctype = rx_t *;
+ .check = luaM_checkrx($L, $$);
+ .push = lua_pushstring($L, $$ ? ($$)->pattern : NULL);
+ .ctor = luaM_rxnew($$);
+ .dtor = rx_delete($$);
+};
+
+/* vim:set ft=c: */