use tailcalls in debug builds and enable warning 1182 to warn on unused vars