lazy eval of arguments for better "failed to evaluate" diagnostics