Ya.. I included it into each file just cuz i'm stubborn.
You may get errors with polymorph.c ... I think this should work fine:
#undef DISPOSE
#define DISPOSE(point) \
do \
{ \
if((point)) \
{ \
free((point)); \
(point) = NULL; \
} \
} while(0)
than at the end of the file
#undef DISPOSE