+#define ADD_TYPE_PREDICATE(func, type_name) \
+ void \
+ func ## _type_adder () \
+ {\
+ ly_add_type_predicate ((Type_predicate_ptr)func, type_name); \
+ }\
+ ADD_SCM_INIT_FUNC(func ## _type_adder_ctor, \
+ func ## _type_adder);
+#define ADD_TYPE_PREDICATE(func, type_name) \
+ void \
+ func ## _type_adder () \
+ {\
+ ly_add_type_predicate ((Type_predicate_ptr)func, type_name); \
+ }\
+ ADD_SCM_INIT_FUNC(func ## _type_adder_ctor, \
+ func ## _type_adder);
+
+string mangle_cxx_identifier (string);
+
+void ly_add_type_predicate (void *ptr, string name);
+string predicate_to_typename (void *ptr);
+