fix number parsing bug {(+ -3)  => (+ - 3) bug}
furthermore rewrite list-like parsers
start with evaluator. add error handling
add numeric primitives