anchor.diff:    | None ->
   
     match expr with
  +  // Most generation of linear expressions is implemented routinely using tailcalls and the correct sequels.
  +  // This is because the element of expansion happens to be the final thing generated in most cases. However
  +  // for large lists we have to process the linearity separately
  +  | Expr.Sequential _
  +  | Expr.Let _
  +  | LinearOpExpr _ 
  +  | LinearMatchExpr _ -> 
  +      GenLinearExpr cenv cgbuf eenv sp expr sequel (* canProcessSequencePoint *) false id |> ignore<FakeUnit>
  +
     | Expr.Const (c, m, ty) ->
         GenConstant cenv cgbuf eenv (c, m, ty) sequel
     | Expr.Match (spBind, exprm, tree, targets, m, ty) ->
  
positive.code:             Fake))
  
      | Expr.Sequential (e1, e2, specialSeqFlag, spSeq, _) ->
          if canProcessSequencePoint then
              ProcessSequencePointForExpr cenv cgbuf sp expr
  
          // Compiler generated sequential executions result in suppressions of sequence points on both
          // left and right of the sequence
          let spAction, spExpr =
  
negative.code:         // Generate the body
          GenLinearExpr cenv cgbuf eenv spBody body (EndLocalScope(sequel, endScope)) (* canProcessSequencePoint *) true contf
  
      | LinearMatchExpr (spBind, exprm, tree, tg1, e2, spTg2, m, ty) ->
          GenMatch cenv cgbuf eenv (spBind, exprm, tree, [|tg1;TTarget([], e2, spTg2)|], m, ty) sequel
          contf Fake
      //| Expr.Match (spBind, exprm, tree, targets, m, ty) ->
      //    GenMatch cenv cgbuf eenv (spBind, exprm, tree, targets, m, ty) sequel
      | _ -> 
          GenExpr cenv cgbuf eenv sp expr sequel
          contf Fake
  