added hardcoded types to type-of primitive; unary subtraction; car/cdr return nil on non list types; string? primitive