parenthesis around `print`
Use throw instead of assert
assert... i want to get at the damned values easily when it is wrong..
Added behavior for when a function is neither inbuild nor a macro.
it uses the value as if it is to call someone.