got confused making the negate function.

doing nasty things with lval->num by munging up boolean, float and integers there :P