title: Tcl Script: Invalid command name return when executing proc body
body: <p>In a Tcl script, I want to catch the return of a Tcl proc in order to execute some finalization actions.
  For example my code could be as follows:</p>
  
  <pre><code>proc X10 { a } { return [expr $a * 10] }
  proc procF {} {
      set a 13
      catch {[info body X10]} __result
      return $__result
  }
  procF
  </code></pre>
  
  <p>The previous code gives me an error: <code>invalid command name " return [expr $a * 10] "</code></p>
  
  <p>Although that replacing <code>info body X10</code> with <code>return [expr $a * 10]</code> works as expected. What I initially thought is that both of them are exchangeable and should give the same output. So, why the first gives an error and what is the difference between both of them ?</p>