analyze for primitives
stop function calls modifying themselves (#lispproblems) and check the
owner of tail_calls
renaming func in example