anchor.diff:              [<Optional; DefaultParameterValue(null:Func<System.Reflection.MemberInfo,string>)>]
                   customNameExtractor,
               [<Optional; DefaultParameterValue(null:Func<System.Reflection.PropertyInfo,obj,obj>)>] 
  -                customParameterValueMap) = 
  +                customParameterValueMap,
  +            [<Optional; DefaultParameterValue(null:Translator.ItemInCollectionImpl)>] 
  +                itemInCollGenerator) = 
           
           Hlp.translateMultiple 
               includeWhere 
  
positive.code:     |EqualsBool of bool * MemberExpression
      |LogicalJunction of sqlJunction : string * BinaryExpression
      |Comparison of sqlComparison : string * BinaryExpression
  
      let rec asMaybeSupportedExpression (negated:bool) (input:Expression) =
          match input with
          | :? UnaryExpression as expr when expr.NodeType = ExpressionType.Not && expr.Type = typeof<System.Boolean> ->
              asMaybeSupportedExpression (not negated) expr.Operand
              
  
negative.code:         Expression.Lambda<Func<'T, bool>>(lambda.Body, lambda.Parameters)
  
  module Hlp =
      let translateOne quoter nameExtractor paramValueExtractor itemInCollGenerator conditions includeWhere =
          let sql, parms = 
              Translator.comparisonToWhereClause 
                  quoter nameExtractor paramValueExtractor itemInCollGenerator conditions None List.empty
          let where = if includeWhere then "WHERE " else ""
          new Tuple<_,_>(where + sql, parms |> List.rev |> Array.ofList)
  
      let translateMultiple includeWhere quoter separator nameExtractor paramValueExtractor itemInCollGenerator conditions =
          let queries, prms =
              conditions
              |> Array.fold
                  (fun (queries,prms) condition -> 
                      let query, prms = 
                          Translator.comparisonToWhereClause 
                              quoter nameExtractor paramValueExtractor itemInCollGenerator condition None prms
                      (sprintf "(%s)" query)::queries, prms)
                  (List.empty, List.empty)
   
  