anchor.diff:                  let args = destructureTupleArgs [args]
                   let isStatement = rest = "Statement"
                   emitJs r t args isStatement macro |> Some
  -            | _ -> None
           | "op_EqualsEqualsGreater", [name; MaybeLambdaUncurriedAtCompileTime value] ->
               NewTuple [name; value] |> makeValue r |> Some
           | "createObj", _ ->
  
positive.code:                makeStrConst Naming.unknown |> Some
      | _, ("nameofLambda"|"namesofLambda" as meth) ->
          match args with
          | [Lambda(_, (Namesof com ctx names), _)] -> Some names
          | [MaybeCasted(IdentExpr ident)] ->
              match findInScope ctx ident.Name with
              | Some(Lambda(_, (Namesof com ctx names), _)) -> Some names
              | _ -> None
          | _ -> None
          |> Option.defaultWith (fun () ->
              "Cannot infer name of expression"
  
negative.code: 
  let (|ListSingleton|) x = [x]
  
  let tryFindInScope (ctx: Context) identName =
      let rec findInScopeInner scope identName =
          match scope with
          | [] -> None
  