anchor.diff:      let transformDecisionTreeSuccessAsStatements (com: IBabelCompiler) (ctx: Context) returnStrategy targetIndex boundValues: Statement[] =
           match returnStrategy with
           | Some(Target targetId) ->
  -            let idents, _ = getDecisionTarget ctx targetIndex boundValues
  +            let idents, _ = getDecisionTarget ctx targetIndex
               let assignments =
  -                List.zip idents boundValues |> List.mapToArray (fun (id, TransformExpr com ctx value) ->
  +                matchTargetIdentAndValues idents boundValues
  +                |> List.mapToArray (fun (id, TransformExpr com ctx value) ->
                       assign None (ident id) value |> ExpressionStatement :> Statement)
               let targetAssignment = assign None targetId (ofInt targetIndex) |> ExpressionStatement :> Statement
               Array.append [|targetAssignment|] assignments
  
positive.code:         | thisArg::args -> Some(boundThis, thisArg), args
          | _ -> failwith "Expecting thisArg to be first element of argument list"
  
      let decisionTargetsReferencedMultipleTimes expr targetsLength =
          let targetRefs = Dictionary()
          for i = 1 to targetsLength do
              targetRefs.Add(i - 1, 0)
          expr |> FableTransforms.deepExistsWithShortcircuit (function
              | Fable.DecisionTreeSuccess(idx,_,_) ->
                  let count = targetRefs.[idx]
                  targetRefs.[idx] <- count + 1
                  if count > 0 then Some true else None
              // We shouldn't actually see this, but shortcircuit just in case
              | Fable.DecisionTree _ -> Some false
              | _ -> None)
  
      let getDecisionTarget (ctx: Context) targetIndex boundValues =
          match List.tryItem targetIndex ctx.DecisionTargets with
          | None -> failwithf "Cannot find DecisionTree target %i" targetIndex
          | Some(idents, _) when not(List.sameLength idents boundValues) ->
              failwithf "Found DecisionTree target %i but length of bindings differ" targetIndex
          | Some(idents, target) -> idents, target
  
      let rec isJsStatement ctx preferStatement (expr: Fable.Expr) =
  
negative.code:         | Fable.Sequential _ | Fable.Let _ | Fable.Set _
          | Fable.Loop _ | Fable.Throw _ -> true
  
          | Fable.DecisionTreeSuccess(targetIndex,_, _) ->
              getDecisionTarget ctx targetIndex
              |> snd |> isJsStatement ctx preferStatement
  
          // TODO: Make it also statement if we have more than, say, 3 targets?
  