anchor.diff:          | ParserResult.Success (res, _, _) -> result.Success res
           | ParserResult.Failure (msg, _, _) -> result.Failure msg
   
  +    let FromFile (path:string) =
  +        try FromString (System.IO.File.ReadAllText path)
  +        with | :? System.IO.IOException as ex -> result.Failure (ex.Message)
   
   type operator = delegate of expression list -> result<expression, string>
   
  
positive.code: type OrelangEngine() as this =
      inherit engine()
      with
          do this.def_operator "+" <|
              function
              | e1::e2::_ -> either {
  
negative.code:         operators.Add(name, operator(op))
  
      member this.put_variable name expr =
          if variables.ContainsKey name then
              variables.Remove name |> ignore
          variables.Add(name, expr)
  
      member this.Evaluate =
  