anchor.diff:      let transformLambda com ctx (name: string option) (args: Fable.Ident list) (body: Fable.Expr) =
           let isRecursive, isTailRec = isTailRecursive name body
           let fixedArgs = if isRecursive && not isTailRec then (makeIdent name.Value) :: args else args
  -        let fnDecl = transformFunctionDecl com ctx false fixedArgs Fable.Unit
  +        let fnDecl = transformFunctionDecl com ctx fixedArgs Fable.Unit
           let ctx = getFunctionCtx com ctx name args body isTailRec
           // remove captured names from scoped symbols, as they will be cloned
           let closedOverCloneableNames = getCapturedNames com ctx name args body
  
positive.code:         let isMut = false
          mkInferredParam ident.Name isRef isMut //?loc=id.Range)
  
      let transformFunctionDecl (com: IRustCompiler) ctx isFluent args returnType =
          let inputs =
              args
              |> discardUnitArg
  
negative.code:         let isRecursive, isTailRec = isTailRecursive name body
          let argTypes = args |> List.map (fun arg -> arg.Type)
          let genParams = getGenericParams ctx (argTypes @ [body.Type])
          let fnDecl = transformFunctionDecl com ctx args body.Type
          let ctx = getFunctionCtx com ctx name args body isTailRec
          let fnBody = transformFunctionBody com ctx args body
          fnDecl, fnBody, genParams
  