anchor.diff:    | Number d1, Number d2 -> reverse * compare d1 d2
     | String s1, String s2 -> reverse * compare s1 s2
     | _ -> failwith "Cannot compare values"
  +
  +let evalCondition op actual expected =
  +  match op, actual with 
  +  | Equals, String s -> expected = s
  +  | NotEquals, String s -> expected <> s
  +  | (Equals | NotEquals), Number _ -> failwith "Equals and not equals work only on strings"
  +  | GreaterThan, Number n -> n > decimal expected
  +  | LessThan, Number n -> n < decimal expected
  +  | InRange, Number n -> let expected = expected.Split(',') in n > decimal expected.[0] && n < decimal expected.[1]
  +  | (GreaterThan | LessThan | InRange), String _ -> failwith "Relational operator work only on numbers"
   
   let transformData (objs:seq<(string * Value)[]>) = function
     | Empty -> objs
  
positive.code:   | FilterBy(op, conds) ->
        objs |> Seq.filter (fun o ->
          let f = match op with And -> Seq.forall | Or -> Seq.exists
          conds |> f (fun (fld, eq, value) ->
            match pickField fld o with
            | String v -> if eq then v = value else v <> value
            | Number n -> if eq then n = decimal value else n <> decimal value))
    | GroupBy(flds, aggs) ->
        let aggs = List.rev aggs
        objs 
  
negative.code:     | "range", [f] -> GetRange(f), true
      | _ -> GetTheData, false
  
    let operators = 
      [ Equals, " eq "; NotEquals, " neq "; LessThan, " lte "; GreaterThan, " gte "; InRange, " in " ]
  
    let parseCondition (cond:string) = 
      let cond = cond.Trim()
      let start = if cond.StartsWith("'") then cond.IndexOf('\'', 1) else 0
      let optRes = 
        operators |> Seq.tryPick (fun (op, s) ->
          let i = cond.IndexOf(s)
          if i = -1 then None else
            Some(op, trimIdent (cond.Substring(0, i)), trimIdent (cond.Substring(i + s.Length))))
      match optRes with
      | None -> failwithf "Incorrectly formatted condition: >>%s<<" cond
      | Some res -> res
  
    let parseTransform (op, args) = 
      match op, args with
  