anchor.diff:      | Result.Error msg ->
         printfn "failed to parse: %A\n" msg
       | Result.OK expr ->
  -      let engine = Orelang.Engine()
  +      let engine = Orelang.Engine().Default()
         printfn "result: %A" <| engine.Evaluate expr
   
     let testString s =
  
positive.code:   let ParseFromFile (path: string) : Result<expr, ErrorKind> =
      ParseFromString <| System.IO.File.ReadAllText path
  
    type Engine() as this =
      let env = new Dictionary<string, expr>()
  
      do
        let defineOperator name f = env.Add(name, Operator(operator_t(f)))
  
        defineOperator "set" <| fun args -> maybe {
  
negative.code:         return Boolean (lhs = rhs)
        }
  
        this
  
      member private this.getValue k =
        match env.TryGetValue(k) with
        | (true, v) -> Some v
  