anchor.diff:          return Boolean (lhs = rhs)
         }
   
  +      this
  +
       member private this.getValue k =
         match env.TryGetValue(k) with
         | (true, v) -> Some v
  
positive.code:     | Result.Error msg ->
        printfn "failed to parse: %A\n" msg
      | Result.OK expr ->
        let engine = Orelang.Engine()
        printfn "result: %A" <| engine.Evaluate expr
  
    let testString s =
  
negative.code:         | _                  -> None)
  
      member this.evalLambda syn expr args =
        let local_eng = Engine()
        // FIX: use local environment
        for k, v in List.zip syn args do
          this.setValue k v
        this.evaluate expr local_eng
  
      member this.evaluate expr local =
        this.Evaluate expr
  
      member this.Evaluate (expr: expr) : expr option =
  