-class_signature_t* registry_getanytype();
-class_signature_t* registry_getobjectclass();
-class_signature_t* registry_getnumberclass();
-class_signature_t* registry_getstringclass();
-class_signature_t* registry_getintclass();
-class_signature_t* registry_getuintclass();
-class_signature_t* registry_getnullclass();
-class_signature_t* registry_getbooleanclass();
-class_signature_t* registry_getMovieClip();
-
-class_signature_t* registry_findclass(const char*package, const char*name);
-
-void registry_fill_multiname(multiname_t*m, namespace_t*n, class_signature_t*c);
-multiname_t* class_signature_to_multiname(class_signature_t*cls);
-#define sig2mname(x) class_signature_to_multiname(x)
+classinfo_t voidclass;
+classinfo_t* registry_getanytype();
+classinfo_t* registry_getarrayclass();
+classinfo_t* registry_getobjectclass();
+classinfo_t* registry_getnumberclass();
+classinfo_t* registry_getstringclass();
+classinfo_t* registry_getdateclass();
+classinfo_t* registry_getintclass();
+classinfo_t* registry_getuintclass();
+classinfo_t* registry_getnullclass();
+classinfo_t* registry_getvoidclass();
+classinfo_t* registry_getarrayclass();
+classinfo_t* registry_getregexpclass();
+classinfo_t* registry_getxmlclass();
+classinfo_t* registry_getxmllistclass();
+classinfo_t* registry_getbooleanclass();
+classinfo_t* registry_getMovieClip();
+classinfo_t* registry_getclassclass(classinfo_t*a);
+classinfo_t* registry_getnamespaceclass();
+extern classinfo_t voidclass;
+
+char* infotypename(slotinfo_t*s);
+void slotinfo_dump(slotinfo_t*s);
+
+/* convenience functions */
+#define sig2mname(x) (x->superclass,classinfo_to_multiname((slotinfo_t*)(x)))
+
+#define TYPE_ANY (0)
+#define TYPE_IS_ANY(t) ((t) == 0)
+#define TYPE_INT registry_getintclass()
+#define TYPE_IS_INT(t) ((t) == registry_getintclass())
+#define TYPE_UINT registry_getuintclass()
+#define TYPE_IS_UINT(t) ((t) == registry_getuintclass())
+#define TYPE_NUMBER registry_getnumberclass()
+#define TYPE_IS_NUMBER(t) ((t) == registry_getnumberclass())
+#define TYPE_FLOAT registry_getnumberclass()
+#define TYPE_IS_FLOAT(t) ((t) == registry_getnumberclass())
+#define TYPE_BOOLEAN registry_getbooleanclass()
+#define TYPE_IS_BOOLEAN(t) ((t) == registry_getbooleanclass())
+#define TYPE_STRING registry_getstringclass()
+#define TYPE_IS_STRING(t) ((t) == registry_getstringclass())
+#define TYPE_DATE registry_getdateclass()
+#define TYPE_IS_DATE(t) ((t) == registry_getdateclass())
+#define TYPE_OBJECT registry_getobjectclass()
+#define TYPE_IS_OBJECT(t) ((t) == registry_getobjectclass())
+#define TYPE_REGEXP registry_getregexpclass()
+#define TYPE_IS_REGEXP(t) ((t) == registry_getregexpclass())
+#define TYPE_VOID registry_getvoidclass()
+#define TYPE_IS_VOID(t) ((t) == registry_getvoidclass())
+#define TYPE_ARRAY registry_getarrayclass()
+#define TYPE_IS_ARRAY(t) ((t) == registry_getarrayclass())
+#define TYPE_NAMESPACE registry_getnamespaceclass()
+#define TYPE_IS_NAMESPACE(t) ((t) == registry_getnamespaceclass())
+#define TYPE_FUNCTION(f) ((f)->return_type,slotinfo_asclass((slotinfo_t*)(f)))
+#define TYPE_IS_FUNCTION(t) registry_isfunctionclass(t)
+#define TYPE_CLASS(f) ((f)->superclass,slotinfo_asclass((slotinfo_t*)(f)))
+#define TYPE_IS_CLASS(t) registry_isclassclass(t)
+#define TYPE_NULL registry_getnullclass()
+#define TYPE_IS_NULL(t) ((t) == registry_getnullclass())
+#define TYPE_VOID registry_getvoidclass()
+#define TYPE_IS_VOID(t) ((t) == registry_getvoidclass())
+#define TYPE_XML registry_getxmlclass()
+#define TYPE_IS_XML(t) ((t) == registry_getxmlclass())
+#define TYPE_XMLLIST registry_getxmllistclass()
+#define TYPE_IS_XMLLIST(t) ((t) == registry_getxmllistclass())
+
+#define TYPE_IS_BUILTIN_SIMPLE(type) (TYPE_IS_INT(type) || \
+ TYPE_IS_UINT(type) || \
+ TYPE_IS_FLOAT(type) || \
+ TYPE_IS_BOOLEAN(type) || \
+ TYPE_IS_STRING(type))
+
+#define IS_NUMBER_OR_INT(a) (TYPE_IS_INT((a)) || TYPE_IS_UINT((a)) || TYPE_IS_NUMBER((a)))
+