void assert_fail(const char *name, const char *file, int line, 
		 const char *func) __attribute__ ((noreturn));
#	define assert(a) \
	do { \
		if ((a) == 0) \
			assert_fail(#a, __FILE__, __LINE__, __FUNCTION__); \
	} while (0)

#	define oops() assert_fail("OOPS", __FILE__, __LINE__, __FUNCTION__)

