Package run provides the execution control for ivy. It is factored out of main so it can be used for tests. This layout also helps out ivy/mobile.
IvyEval is the function called by value/unaryIvy to implement the ivy (eval) operation. It is exported but is not intended to be used outside of ivy.
Run runs the parser/evaluator until EOF or error. The return value says whether we completed without error. If the return value is true, it means we ran out of data (EOF) and the run was successful. Typical execution is therefore to loop calling Run until it succeeds. Error details are reported to the configured error output stream.