add macro for asserting number of arguments passed to a function
fix bug with freeing memory on joined lists
massively improve error reporting with new macros