anchor.diff:  
           let! fableDecisionTargets = transformDecisionTargets [] decisionTargets
           
  +        // rewrite last decision target if it throws MatchFailureException
           let compiledFableTargets = 
               match isRasingMatchFailureExpr (snd (List.last decisionTargets)) with 
               | Some fileNameWhereErrorOccurs -> 
  
positive.code:                 | BasicPatterns.IfThenElse(BasicPatterns.UnionCaseTest(unionValue, unionType, unionCaseInfo), _, _) ->
                      let rangeOfLastDecisionTarget = makeRangeFrom (snd (List.last decisionTargets))
                      let errorMessage = 
                          sprintf "The match cases were incomplete: case '%s' of type '%s' was not handled at %s" 
                              unionCaseInfo.Name 
                              unionType.TypeDefinition.DisplayName
                              fileNameWhereErrorOccurs
                      let errorExpr = createThrowErrorExpr errorMessage rangeOfLastDecisionTarget 
  
                      fableDecisionTargets
                      |> List.replaceLast (fun lastExpr -> [], errorExpr)
                  | _ ->
                      fableDecisionTargets
              | None -> fableDecisionTargets
  
          return Fable.DecisionTree(fableDecisionExpr, compiledFableTargets)
  
negative.code: 
      // Pattern Matching
      | BasicPatterns.DecisionTree(decisionExpr, decisionTargets) ->
          let! fableDecisionExpr = transformExpr com ctx decisionExpr
          let rec transformDecisionTargets acc xs =
              trampoline {
                  match xs with
  