anchor.diff:  let isListUnionCase (uci:UnionCaseInfo) = 
       uci.DeclaringType.IsGenericType && uci.DeclaringType.GetGenericTypeDefinition() = typedefof<list<_>>
   
  +///Test whether the given MemberInfo instance represents an F# Generic Value rather than 
  +///a Unit argument function.  Assumes that the MemberInfo instance is for a .NET member taking zero arguments.
   let isGenericValue =
       memoize //performance testing shows about 10% performance increase in SourceOpTests.``Call distinguishes between generic value Call and unit function Call`` using memoization 
           (fun (mi:MemberInfo) ->
  
positive.code:     ] |> Map.ofList
  
  //future feature, support custom ops
  let (|BinaryInfixCall|_|) = function
      | Call (_, mi, lhs::rhs::[]) ->
          match binaryOps |> Map.tryFind mi.Name with
  
negative.code:     | _ -> None
  
  ////need to check all args are reduced?
  ///Partial application and zero application of Lambda call (e.g. List.map (+), or id).
  ///Must come before Let and Lambdas patterns.
  ///Cases: 1) Let .. Lambdas .. Call
  ///       2) Lambdas .. Call
  let (|IncompleteLambdaCall|_|) x =
      match x with
  