anchor.diff:          elif ident.IsMutable then
               expr |> mutableGet
           else
  -            if isRefScoped ctx ident.Name && (ctx.Typegen.TakingOwnership)
  -            then makeClone expr // mkDerefExpr expr |> mkParenExpr
  +            if isBoxScoped ctx ident.Name
  +            then expr |> makeRcValue
  +            elif isRefScoped ctx ident.Name && ctx.Typegen.TakingOwnership
  +            then expr |> makeClone // |> mkDerefExpr |> mkParenExpr
               else expr
   
       let transformIdentSet com ctx r (ident: Fable.Ident) (value: Rust.Expr) =
  
positive.code:         let allNames = name |> Option.fold (fun xs x -> x :: xs) (argNames @ fixedNames)
          allNames |> Set.ofList
  
      let hasCapturedNames com ctx (name: string option) (args: Fable.Ident list) (body: Fable.Expr) =
          let ignoredNames = HashSet(getIgnoredNames name args)
          let isClosedOver expr =
              isClosedOverIdent com ctx ignoredNames expr |> Option.isSome
          FableTransforms.deepExists isClosedOver body
  
negative.code:             | _ -> None)
          |> mkGenerics
  
      let transformInnerFunction com ctx (name: string) (args: Fable.Ident list) (body: Fable.Expr) =
          let fnDecl, fnBody, fnGenParams =
              transformFunction com ctx (Some name) args body
          let fnBodyBlock =
              if body.Type = Fable.Unit
              then mkSemiBlock fnBody
  