anchor.diff:  evaluation a declaration:
   *)
   
  -evalInteraction "let xxx = 1 + 1"
  +fsiSession.EvalInteraction "let xxx = 1 + 1"
   
   (**
   
  
positive.code:   | Some value -> printfn "%A" value.ReflectionValue
    | None -> printfn "Got no result!"
  
  /// Evaluate expression & return the result, strongly typed
  let evalExpressionTyped<'T> (text) = 
      match fsiSession.EvalExpression(text) with
      | Some value -> value.ReflectionValue |> unbox<'T>
      | None -> failwith "Got no result!"
  
  (**
  The `EvalInteraction` method has no result. It can be used to evaluate side-effectful operations
  such as printing, or other interactions that are not valid F# expressions, but can be entered in
  the F# Interactive console. Such commands include `#time "on"` (and other directives), `open System`
  and other top-level statements.
  *)
  /// Evaluate interaction & ignore the result
  let evalInteraction text = 
    fsiSession.EvalInteraction(text)
  (**
  The two functions each take a string as an argument and evaluate (or execute) it as F# code. The code 
  passed to them does not require `;;` at the end. Just enter the code that you want to execute:
  *)
  evalExpression "42+1"
  evalInteraction "printfn \"bye\""
  
  
  (**
  The `EvalScript` method allows to evaluate a complete .fsx script.
  *)
  /// Evaluate script & ignore the result
  let evalScript scriptPath = 
    fsiSession.EvalScript(scriptPath)
  
  File.WriteAllText("sample.fsx", "let twenty = 10 + 10")
  evalScript "sample.fsx"
  
  (**
  Catching errors
  
negative.code: Evaluating and executing code
  -----------------------------
  
  The F# interactive service exposes several methods that can be used for evaluation. The first
  is `EvalExpression` which evaluates an expression and returns its result. The result contains
  the returned value (as `obj`) and the statically inferred type of the value:
  *)
  