anchor.diff:          //     else iife com ctx expr
   
           | Fable.Sequential exprs ->
  -            exprs
  -            |> List.map (fun e ->
  -                com.TransformAsExpr(ctx, e)
  -                |> (if e.Type = Fable.Unit then mkSemiStmt else mkExprStmt))
  -            |> mkBlock
  -            |> mkBlockExpr
  +            // flatten nested sequential expressions
  +            let exprs = flattenSequential fableExpr
  +            transformSequential com ctx exprs
   
           | Fable.Emit(info, _, range) ->
               // if info.IsJsStatement then iife com ctx expr
  
positive.code:         let ctx = { ctx with TailCallOpportunity = None }
          let bodyExpr = com.TransformAsExpr(ctx, body)
          mkTryBlockExpr bodyExpr // TODO: add catch and finally
      let transformCurriedApply com ctx range expr args =
          callFunction range expr (args |> List.map (transformAsExpr com ctx))
          // let handler =
  
negative.code:             else
                  transformDecisionTreeWithTwoSwitches com ctx returnStrategy targets treeExpr
  *)
      let rec transformAsExpr (com: IRustCompiler) ctx (fableExpr: Fable.Expr): Rust.Expr =
          match fableExpr with
  
          | Fable.TypeCast(e, t) -> transformCast com ctx t e
  
  