anchor.diff:                  let v = Expression.Lambda<Func<obj>>(unaryExpr).Compile()
                   literalToSql (v.Invoke ()) curParams
               |"RuntimePropertyInfo" -> false, body.Member.Name, None
  -            |_ as name -> sprintf "unsupported member type name %s" name |> failwith    
  -        | _ -> sprintf "unsupported nodetype %A" body|> failwith    
  +            |_ as name -> failwithf "unsupported member type name %s" name   
  +        | _ -> failwithf "unsupported nodetype %A" body   
   
       let leafExpression (body:BinaryExpression) sqlOperator curParams =
           let _, lVal, lParam = constantOrMemberAccessValue body.Left curParams
  
positive.code:             | true, ExpressionType.NotEqual -> " is not "
              | true, ExpressionType.Equal -> " is "
              | false, _ -> sprintf " %s " sqlOperator
              | _ -> sprintf "unsupported nodetype %A" body |> failwith
  
          lVal + oper + rVal,
          match lParam,rParam with
  
negative.code:             | None -> 
                  match binExpToSqlOper body with
                  | Some sqlOper -> leafExpression body sqlOper curSqlParams
                  | None -> failwithf "unsupported operator %A in leaf" body.NodeType
          | _ -> failwithf "conditions has unexpected type %A" body
  
  type ExpressionToSql = 
      static member Translate<'T> (conditions:Expression<Func<'T, bool>>) =
  