The following seems to work just fine:
PyObject *type(const char *name, boost::python::tuple bases, boost::python::dict dict) {
return PyType_Type.tp_new(&PyType_Type,
Py_BuildValue("sOO", name, bases.ptr(), dict.ptr()), NULL);
}
Thanks to Zack for pointing me in the right direction!