anchor.diff:                  let name = defaultArg uci.CompiledName uci.Name
                   makeObjMember caseRule name values::acc |> Some
               | Some acc, MaybeCasted(Value(NewTuple((StringConst name)::values),_)) ->
  -                // Don't change the case for tuples in disguise
  -                makeObjMember Core.CaseRules.None name values::acc |> Some
  +                match values with
  +                | [MaybeCasted(Value(NewOption(None, _), _))] -> Some acc
  +                | values ->
  +                    // Don't change the case for tuples in disguise
  +                    makeObjMember Core.CaseRules.None name values::acc |> Some
               | _ -> None))
       |> Option.map (fun members -> ObjectExpr(members, Any, None))
   
  
positive.code:             | _ -> None
  
          match args with
          | [MaybeCasted(IdentExpr ident)] -> findInScope ctx ident.Name |> Option.bind inferCasename
          | [e] -> inferCasename e
          | _ -> None
          |> Option.orElseWith (fun () ->
              "Cannot infer case name of expression"
  
negative.code:                makeStrConst Naming.unknown |> Some
      | _, ("nameofLambda"|"namesofLambda" as meth) ->
          match args with
          | [MaybeInScope ctx (Lambda(_, (Namesof com ctx names), _))] -> Some names
          | _ -> None
          |> Option.defaultWith (fun () ->
              "Cannot infer name of expression"
  