anchor.diff:  open System
   open System.IO
   open FSharp.Markdown
  -open FSharp.CodeFormat
   open Yaaf.FSharp.Scripting
   
   
  
positive.code:         evalFailed.Trigger { File=file; AsExpression=asExpression; Text=text; Exception=e; StdErr = e.Result.Error.Merged }
          { Output = None; Result = None; ItValue = None } :> _
  
      //member x.Evaluate(text:string, asExpression, ?file) =
      // try
      //   lock lockObj <| fun () ->
      //     let dir =
      //       match file with
      //       | Some f -> Path.GetDirectoryName f
      //       | None -> Directory.GetCurrentDirectory()
      //     x.WithCurrentDirectory dir (fun () ->
      //        let (output, value), itvalue =
      //            if asExpression then
      //               match fsiSession.EvalExpressionNonThrowing text with
      //               | Choice1Of2 (Some fsiValue), err ->
      //                    match fsiSession.EvalExpression "it" with
      //                    | Some itValue ->
      //                       (fsiValue.ToString(),  Some(fsiValue.ReflectionValue,fsiValue.ReflectionType)),Some(itValue.ReflectionValue,itValue.ReflectionType)
      //                    | None  ->
      //                        (fsiValue.ToString(),  Some(fsiValue.ReflectionValue,fsiValue.ReflectionType)), None
      //               | Choice1Of2 None, err ->
      //                    let msg = String.Concat err
      //                    (msg ,None),None
      //               | Choice2Of2 ex,  err ->
      //                    let msg = String.concat "\n" [ String.Concat err;  ex.Message; ex.StackTrace ]
      //                    (msg , None), None
      //            else
      //               match fsiSession.EvalExpression text with
      //               | Some fsiValue ->
      //                    // try get the "it" value, but silently ignore any errors
      //                   try
      //                      match fsiSession.EvalExpression "it" with
      //                      | Some itValue ->
      //                         (fsiValue.ToString(),  Some(fsiValue.ReflectionValue,fsiValue.ReflectionType)),Some(itValue.ReflectionValue,itValue.ReflectionType)
      //                      | None  ->
      //                         (fsiValue.ToString(),  Some(fsiValue.ReflectionValue,fsiValue.ReflectionType)), None
      //                   with _ -> (fsiValue.ToString(), None), None
      //               | None -> ("---", None), None
      //        { Output = Some output; Result = value; ItValue = itvalue  } :> _
      //     )
      // with :? FsiEvaluationException as e ->
      //   //evalFailed.Trigger { File=file; AsExpression=asExpression; Text=text; Exception=e; StdErr = e.Result.Error.Merged }
      //    { Output = None; Result = None; ItValue = None } :> _
negative.code:       | _, FsiEmbedKind.ItValue -> [ CodeBlock ("No value has been returned", "", "", None) ]
        | _, FsiEmbedKind.Value -> [ CodeBlock ("No value has been returned", "", "", None) ]
  
      /// Evaluates the given text in an fsi session and returns
      /// an FsiEvaluationResult.
      ///
  