anchor.diff:          | _ -> None
   
       let rec comparisonToWhereClauseImpl
  -            (quote:IQuoter) nameExtractor paramMap
  +            (quote:IQuoter) nameExtractor paramMap itemInCollGenerator
               (expr:Expression) parentJunction curSqlParams = 
   
           expr
  
positive.code:             |Some p, Some mapper -> {this with Param = Some (mapper p)}
              |_ -> this
      
      let nullableType = typedefof<Nullable<_>>
  
      let literalToSql (v:obj) =
          match v with
  
negative.code:             | Comparison(cmpSql, expr) -> 
                  leafExpression quote nameExtractor paramMap expr cmpSql curSqlParams
              | LogicalJunction(junctionSql, expr) ->
                  let lSql, curSqlParams = 
                      comparisonToWhereClauseImpl quote nameExtractor paramMap itemInCollGenerator expr.Left (Some junctionSql) curSqlParams
                  let rSql, curSqlParams = 
                      comparisonToWhereClauseImpl quote nameExtractor paramMap itemInCollGenerator expr.Right (Some junctionSql) curSqlParams
                  
                  let sql = 
                      sprintf "%s %s %s" lSql junctionSql rSql
                      |> sqlInBracketsIfNeeded parentJunction junctionSql
  
                  sql, curSqlParams
              | ItemInCollection(itm, coll) ->
                  let itm = constantOrMemberAccessValue quote nameExtractor itm
                  let coll = constantOrMemberAccessValue quote nameExtractor coll
  
                  match itemInCollGenerator with
                  | None -> failwithf "item-in-collection syntax not supported because itemInCollGenerator is not provided"
                  | Some itemInCollGenerator ->
                      let itmSql = itm.SqlProduce curSqlParams
                      let curSqlParams = curSqlParams |> List.appendIfSome itm.Param
  
                      let collSql = coll.SqlProduce curSqlParams
                      let curSqlParams = curSqlParams |> List.appendIfSome coll.Param
                                          
                      itemInCollGenerator itmSql collSql, curSqlParams
                  
      let comparisonToWhereClause quote nameExtractor paramMap itemInCollGenerator (expr:Expression<Func<'T,bool>>) parentJunction curSqlParams =
          comparisonToWhereClauseImpl quote nameExtractor paramMap itemInCollGenerator expr.Body parentJunction curSqlParams
  
  module LinqHelpers =
      //thanks Daniel
  