pub fn repl<T, E>( evaluator: impl FnMut(&str) -> Result<EvalResult<T>, E>, ) -> Result<ReplResult<T>, ReplError<E>>