Adding some (failing) unit tests for how `call` should behave.
Rewriting `call` to fix the tests and use iterative evaluation.