You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2024/04/04 12:26:48 UTC

(opendal) branch gh-pages updated: deploy: 558b1f9e64b84ec3cb8ec923b83464e49dbd174c

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 03195a3831 deploy: 558b1f9e64b84ec3cb8ec923b83464e49dbd174c
03195a3831 is described below

commit 03195a3831001655223aea4d19b33d25a553e595
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Thu Apr 4 12:26:42 2024 +0000

    deploy: 558b1f9e64b84ec3cb8ec923b83464e49dbd174c
---
 404.html                                           |    4 +-
 assets/js/054cd2fb.6503a005.js                     |    1 +
 assets/js/054cd2fb.ae8a85b7.js                     |    1 -
 assets/js/0605a481.c4499176.js                     |    1 -
 assets/js/0605a481.e6017847.js                     |    1 +
 assets/js/093f5f04.9c344393.js                     |    1 +
 assets/js/093f5f04.f7629c7c.js                     |    1 -
 assets/js/09d8124e.465b19e6.js                     |    1 -
 assets/js/09d8124e.4b5bc7b4.js                     |    1 +
 assets/js/136e1c50.3c5ce896.js                     |    1 +
 assets/js/136e1c50.9639354d.js                     |    1 -
 assets/js/151cd40f.40739a8a.js                     |    1 -
 assets/js/151cd40f.6f9bac98.js                     |    1 +
 .../{170f36cb.f2bebf90.js => 170f36cb.d9839fba.js} |    2 +-
 assets/js/1957547a.dd8df3d8.js                     |    1 +
 assets/js/1957547a.e08ae218.js                     |    1 -
 assets/js/1db64337.0d1007d2.js                     |    1 -
 assets/js/1db64337.748b2daf.js                     |    1 +
 assets/js/22d8fa67.3d1ec18b.js                     |    1 +
 assets/js/22d8fa67.b0e350e5.js                     |    1 -
 assets/js/29b208a4.2d492f4e.js                     |    1 +
 assets/js/29b208a4.8636eaf3.js                     |    1 -
 .../{2cbf1097.f438693b.js => 2cbf1097.14a87a8c.js} |    2 +-
 .../{355132e1.f69238c1.js => 355132e1.ae0058c1.js} |    2 +-
 assets/js/3632610d.02e78cd9.js                     |    1 +
 assets/js/3632610d.33c03be8.js                     |    1 -
 assets/js/381c04e3.62bf3b12.js                     |    1 -
 assets/js/381c04e3.748605e2.js                     |    1 +
 .../{39a95de5.bf6d2651.js => 39a95de5.830fb55e.js} |    2 +-
 .../{3f2bc239.ce266b60.js => 3f2bc239.1f0dff2c.js} |    2 +-
 assets/js/42347498.0992da94.js                     |    1 -
 assets/js/42347498.0b59a173.js                     |    1 +
 assets/js/434bbc94.254b51a6.js                     |    1 -
 assets/js/434bbc94.3cd6d820.js                     |    1 +
 assets/js/4e2d8f56.7e2c8b6b.js                     |    1 +
 assets/js/4e2d8f56.ef996edd.js                     |    1 -
 assets/js/500d55cb.49c63d49.js                     |    1 -
 assets/js/500d55cb.84b03eab.js                     |    1 +
 assets/js/57a16c1d.17074cfa.js                     |    1 -
 assets/js/57a16c1d.bdc8d8ff.js                     |    1 +
 assets/js/592d1076.40847193.js                     |    1 +
 assets/js/592d1076.de4e57ee.js                     |    1 -
 assets/js/621b831b.0871d227.js                     |    1 -
 assets/js/621b831b.5c371113.js                     |    1 +
 assets/js/65bf2b43.1dbf3b13.js                     |    1 -
 assets/js/65bf2b43.5058e4b5.js                     |    1 +
 assets/js/67ecc70e.8e2c4717.js                     |    1 +
 assets/js/67ecc70e.df974570.js                     |    1 -
 assets/js/6a41242b.9f7e7786.js                     |    1 +
 assets/js/6a41242b.a9183d11.js                     |    1 -
 assets/js/6dc695d1.00dcad6f.js                     |    1 +
 assets/js/6dc695d1.9b56b7cc.js                     |    1 -
 assets/js/6f4d3fa1.0a825b20.js                     |    1 +
 assets/js/6f4d3fa1.2ccbdfcd.js                     |    1 -
 assets/js/7263c0b5.0511ee7b.js                     |    1 -
 assets/js/7263c0b5.7f75e930.js                     |    1 +
 assets/js/8070e160.098f553e.js                     |    1 +
 assets/js/8070e160.ccca10ea.js                     |    1 -
 .../{8cc9519e.4c766995.js => 8cc9519e.03f9c922.js} |    2 +-
 .../{8f4159f2.f0f58ab5.js => 8f4159f2.f900c032.js} |    2 +-
 assets/js/8fb00c63.7af5f290.js                     |    1 +
 assets/js/8fb00c63.cd34aeee.js                     |    1 -
 assets/js/939f74f6.00d640ed.js                     |    1 -
 assets/js/939f74f6.7b356ef0.js                     |    1 +
 assets/js/a0405932.bd4be36e.js                     |    1 +
 assets/js/a0405932.fb53b40e.js                     |    1 -
 assets/js/b114cefa.1f5c6818.js                     |    1 -
 assets/js/b114cefa.54ed88c6.js                     |    1 +
 assets/js/b56f9725.3eb8c75b.js                     |    1 -
 assets/js/b56f9725.f50eed34.js                     |    1 +
 assets/js/bb5b2057.c07f0294.js                     |    1 +
 assets/js/bb5b2057.fed158b9.js                     |    1 -
 assets/js/c0600a1b.2c8298cf.js                     |    1 -
 assets/js/c0600a1b.a0e775d5.js                     |    1 +
 assets/js/c46c6b55.dd15f356.js                     |    1 +
 assets/js/c46c6b55.f684b7e8.js                     |    1 -
 .../{c6ab695b.db8d068d.js => c6ab695b.f6a187ef.js} |    2 +-
 .../{cc62039a.c4aff87f.js => cc62039a.3009b468.js} |    2 +-
 assets/js/d3c0d8d5.5898649e.js                     |    1 -
 assets/js/d3c0d8d5.b3874a8e.js                     |    1 +
 assets/js/ddccef4c.cab63244.js                     |    1 -
 assets/js/ddccef4c.fcfc6397.js                     |    1 +
 assets/js/e892cec6.05912da2.js                     |    1 -
 assets/js/e892cec6.2e21520b.js                     |    1 +
 assets/js/eec267e4.9d9f0cda.js                     |    1 -
 assets/js/eec267e4.f9f80a20.js                     |    1 +
 assets/js/f1ca5a39.10af6255.js                     |    1 +
 assets/js/f1ca5a39.3cef5b65.js                     |    1 -
 assets/js/f9145722.5dc203a8.js                     |    1 +
 assets/js/f9145722.884be9e8.js                     |    1 -
 assets/js/fde7cc64.061b2a2b.js                     |    1 -
 assets/js/fde7cc64.d3606cf1.js                     |    1 +
 assets/js/{main.a9b5395f.js => main.2740ff97.js}   |    4 +-
 ...js.LICENSE.txt => main.2740ff97.js.LICENSE.txt} |    0
 ...e~main.8256c91e.js => runtime~main.3d561265.js} |    2 +-
 blog/apache-opendal-graduated/index.html           |    4 +-
 .../index.html                                     |    4 +-
 blog/archive/index.html                            |    4 +-
 blog/how-opendal-read-data/index.html              |    4 +-
 blog/index.html                                    |    4 +-
 blog/opendal-access-data-freely/index.html         |    4 +-
 blog/opendal-entered-apache-incubator/index.html   |    4 +-
 blog/owo-1/index.html                              |    4 +-
 blog/tags/announcement/index.html                  |    4 +-
 blog/tags/index.html                               |    4 +-
 blog/tags/internal/index.html                      |    4 +-
 blog/tags/owo/index.html                           |    4 +-
 community/category/committers/index.html           |    4 +-
 community/category/events/index.html               |    4 +-
 community/category/pmc-members/index.html          |    4 +-
 community/category/reference/index.html            |    4 +-
 community/committers/onboarding/index.html         |    4 +-
 .../reference/generate_release_note/index.html     |    4 +-
 .../committers/reference/setup_gpg/index.html      |    4 +-
 community/committers/release/index.html            |    8 +-
 .../request_for_adding_secrets/index.html          |    4 +-
 community/committers/verify/index.html             |    8 +-
 community/events/gsoc-proposal-guide/index.html    |    4 +-
 community/index.html                               |    4 +-
 community/maturity/index.html                      |    4 +-
 community/news/index.html                          |    4 +-
 .../pmc_members/nominate-committer/index.html      |    4 +-
 .../pmc_members/nominate-pmc-member/index.html     |    4 +-
 community/pmc_members/onboarding/index.html        |    4 +-
 community/pmc_members/podling-report/index.html    |    4 +-
 community/security/index.html                      |    4 +-
 docs/category/integrations/index.html              |    4 +-
 docs/category/services/index.html                  |    4 +-
 docs/haskell/OpenDAL.html                          |    4 +-
 docs/haskell/doc-index.json                        |    2 +-
 docs/haskell/src/OpenDAL.FFI.html                  |  440 +++----
 docs/haskell/src/OpenDAL.html                      | 1234 ++++++++++----------
 docs/integrations/object_store_opendal/index.html  |    6 +-
 docs/lua/classes/opendal.metadata.html             |    2 +-
 docs/lua/classes/opendal.operator.html             |    2 +-
 docs/lua/index.html                                |    2 +-
 docs/nodejs/classes/BlockingLister.html            |    4 +-
 docs/nodejs/classes/BlockingReader.html            |    4 +-
 docs/nodejs/classes/BlockingWriter.html            |    8 +-
 docs/nodejs/classes/Capability.html                |   74 +-
 docs/nodejs/classes/Entry.html                     |    4 +-
 docs/nodejs/classes/ExternalObject.html            |    4 +-
 docs/nodejs/classes/Layer.html                     |    2 +-
 docs/nodejs/classes/Lister.html                    |    4 +-
 docs/nodejs/classes/Metadata.html                  |   18 +-
 docs/nodejs/classes/Operator.html                  |   66 +-
 docs/nodejs/classes/Reader.html                    |    6 +-
 docs/nodejs/classes/RetryLayer.html                |   14 +-
 docs/nodejs/classes/Writer.html                    |    8 +-
 docs/nodejs/interfaces/ListOptions.html            |    4 +-
 docs/nodejs/interfaces/PresignedRequest.html       |    8 +-
 docs/object-store-opendal/search-index.js          |    2 +-
 docs/overview/index.html                           |    6 +-
 docs/python/opendal.html                           |  450 +++----
 docs/python/search.js                              |    2 +-
 docs/quickstart/index.html                         |    6 +-
 docs/services/atomicserver/index.html              |    6 +-
 docs/services/azblob/index.html                    |    6 +-
 docs/services/azdls/index.html                     |    6 +-
 docs/services/cacache/index.html                   |    6 +-
 docs/services/cos/index.html                       |    6 +-
 docs/services/d1/index.html                        |    6 +-
 docs/services/dashmap/index.html                   |    6 +-
 docs/services/dropbox/index.html                   |    6 +-
 docs/services/etcd/index.html                      |    6 +-
 docs/services/foundationdb/index.html              |    6 +-
 docs/services/fs/index.html                        |    6 +-
 docs/services/ftp/index.html                       |    6 +-
 docs/services/gcs/index.html                       |    6 +-
 docs/services/gdrive/index.html                    |    6 +-
 docs/services/ghac/index.html                      |    6 +-
 docs/services/gridfs/index.html                    |    6 +-
 docs/services/hdfs/index.html                      |    6 +-
 docs/services/http/index.html                      |    6 +-
 docs/services/huggingface/index.html               |    6 +-
 docs/services/ipfs/index.html                      |    6 +-
 docs/services/ipmfs/index.html                     |    6 +-
 docs/services/libsql/index.html                    |    6 +-
 docs/services/memcached/index.html                 |    6 +-
 docs/services/memory/index.html                    |    6 +-
 docs/services/moka/index.html                      |    6 +-
 docs/services/mongodb/index.html                   |    6 +-
 docs/services/mysql/index.html                     |    6 +-
 docs/services/obs/index.html                       |    6 +-
 docs/services/onedrive/index.html                  |    6 +-
 docs/services/oss/index.html                       |    6 +-
 docs/services/persy/index.html                     |    6 +-
 docs/services/postgresql/index.html                |    6 +-
 docs/services/redb/index.html                      |    6 +-
 docs/services/redis/index.html                     |    6 +-
 docs/services/rocksdb/index.html                   |    6 +-
 docs/services/s3/index.html                        |    6 +-
 docs/services/sftp/index.html                      |    6 +-
 docs/services/sled/index.html                      |    6 +-
 docs/services/sqlite/index.html                    |    6 +-
 docs/services/supabase/index.html                  |    6 +-
 docs/services/swift/index.html                     |    6 +-
 docs/services/tikv/index.html                      |    6 +-
 docs/services/vercel_artifacts/index.html          |    6 +-
 docs/services/webdav/index.html                    |    6 +-
 docs/services/webhdfs/index.html                   |    6 +-
 download/index.html                                |    4 +-
 index.html                                         |    4 +-
 lunr-index-1712023578797.json                      |    1 -
 lunr-index-1712233559629.json                      |    1 +
 lunr-index.json                                    |    2 +-
 search-doc-1712023578797.json                      |    1 -
 search-doc-1712233559629.json                      |    1 +
 search-doc.json                                    |    2 +-
 209 files changed, 1463 insertions(+), 1459 deletions(-)

diff --git a/404.html b/404.html
index eb22c42910..8c13ca5ff4 100644
--- a/404.html
+++ b/404.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Page Not Found | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tr [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/assets/js/054cd2fb.6503a005.js b/assets/js/054cd2fb.6503a005.js
new file mode 100644
index 0000000000..bf176504fe
--- /dev/null
+++ b/assets/js/054cd2fb.6503a005.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{5722:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",h1:"h1",h2:"h2",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/054cd2fb.ae8a85b7.js b/assets/js/054cd2fb.ae8a85b7.js
deleted file mode 100644
index 10168beb11..0000000000
--- a/assets/js/054cd2fb.ae8a85b7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{5722:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",h1:"h1",h2:"h2",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/0605a481.c4499176.js b/assets/js/0605a481.c4499176.js
deleted file mode 100644
index faceddb46b..0000000000
--- a/assets/js/0605a481.c4499176.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2113],{6834:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var n=r(1527),s=r(2175);function i(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,n.jsx [...]
\ No newline at end of file
diff --git a/assets/js/0605a481.e6017847.js b/assets/js/0605a481.e6017847.js
new file mode 100644
index 0000000000..4e3ab77291
--- /dev/null
+++ b/assets/js/0605a481.e6017847.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2113],{6834:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var n=r(1527),s=r(2175);function i(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,n.jsx [...]
\ No newline at end of file
diff --git a/assets/js/093f5f04.9c344393.js b/assets/js/093f5f04.9c344393.js
new file mode 100644
index 0000000000..539fe6d914
--- /dev/null
+++ b/assets/js/093f5f04.9c344393.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6915],{493:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/093f5f04.f7629c7c.js b/assets/js/093f5f04.f7629c7c.js
deleted file mode 100644
index 5d440828f0..0000000000
--- a/assets/js/093f5f04.f7629c7c.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6915],{493:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/09d8124e.465b19e6.js b/assets/js/09d8124e.465b19e6.js
deleted file mode 100644
index 4679a233cd..0000000000
--- a/assets/js/09d8124e.465b19e6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4543],{7192:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n. [...]
\ No newline at end of file
diff --git a/assets/js/09d8124e.4b5bc7b4.js b/assets/js/09d8124e.4b5bc7b4.js
new file mode 100644
index 0000000000..fd5a3c686c
--- /dev/null
+++ b/assets/js/09d8124e.4b5bc7b4.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4543],{7192:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(n. [...]
\ No newline at end of file
diff --git a/assets/js/136e1c50.3c5ce896.js b/assets/js/136e1c50.3c5ce896.js
new file mode 100644
index 0000000000..43fbc61699
--- /dev/null
+++ b/assets/js/136e1c50.3c5ce896.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{1007:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/136e1c50.9639354d.js b/assets/js/136e1c50.9639354d.js
deleted file mode 100644
index 78e9059468..0000000000
--- a/assets/js/136e1c50.9639354d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{1007:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/151cd40f.40739a8a.js b/assets/js/151cd40f.40739a8a.js
deleted file mode 100644
index aedf4119b2..0000000000
--- a/assets/js/151cd40f.40739a8a.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3702],{3919:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var r=t(1527),s=t(2175);function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r [...]
\ No newline at end of file
diff --git a/assets/js/151cd40f.6f9bac98.js b/assets/js/151cd40f.6f9bac98.js
new file mode 100644
index 0000000000..f6f204445d
--- /dev/null
+++ b/assets/js/151cd40f.6f9bac98.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3702],{3919:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var r=t(1527),s=t(2175);function a(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r [...]
\ No newline at end of file
diff --git a/assets/js/170f36cb.f2bebf90.js b/assets/js/170f36cb.d9839fba.js
similarity index 50%
rename from assets/js/170f36cb.f2bebf90.js
rename to assets/js/170f36cb.d9839fba.js
index 3191f67900..6c8227d382 100644
--- a/assets/js/170f36cb.f2bebf90.js
+++ b/assets/js/170f36cb.d9839fba.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[527],{5766:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>c,metadata:()=>d,toc:()=>l});var o=n(1527),s=n(2175);function r(e){const t={a:"a",h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"opendal-object_store-binding",children:"OpenDAL object_store Binding"}),"\n",(0,o.jsxs)(t.p,{children:["This crate int [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[527],{5766:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>h,frontMatter:()=>c,metadata:()=>d,toc:()=>l});var o=n(1527),s=n(2175);function r(e){const t={a:"a",h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"opendal-object_store-binding",children:"OpenDAL object_store Binding"}),"\n",(0,o.jsxs)(t.p,{children:["This crate int [...]
\ No newline at end of file
diff --git a/assets/js/1957547a.dd8df3d8.js b/assets/js/1957547a.dd8df3d8.js
new file mode 100644
index 0000000000..535bf51d14
--- /dev/null
+++ b/assets/js/1957547a.dd8df3d8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{5034:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/1957547a.e08ae218.js b/assets/js/1957547a.e08ae218.js
deleted file mode 100644
index 48e6010516..0000000000
--- a/assets/js/1957547a.e08ae218.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{5034:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.0d1007d2.js b/assets/js/1db64337.0d1007d2.js
deleted file mode 100644
index e9a5190289..0000000000
--- a/assets/js/1db64337.0d1007d2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{7500:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var t=n(1527),r=n(2175);const i={sidebar_label:"About",sidebar_position:1},o="Welcome to Apache OpenDAL\u2122",a={id:"overview",title:"Welcome to Apache OpenDAL\u2122",description:"OpenDAL represents Open Data Access Layer. Our vision is to access data freely.",source:"@si [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.748b2daf.js b/assets/js/1db64337.748b2daf.js
new file mode 100644
index 0000000000..157005bc39
--- /dev/null
+++ b/assets/js/1db64337.748b2daf.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{7500:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var r=n(1527),t=n(2175);const i={sidebar_label:"About",sidebar_position:1},o="Welcome to Apache OpenDAL\u2122",a={id:"overview",title:"Welcome to Apache OpenDAL\u2122",description:"OpenDAL represents Open Data Access Layer. Our vision is to access data freely.",source:"@si [...]
\ No newline at end of file
diff --git a/assets/js/22d8fa67.3d1ec18b.js b/assets/js/22d8fa67.3d1ec18b.js
new file mode 100644
index 0000000000..34a4634af8
--- /dev/null
+++ b/assets/js/22d8fa67.3d1ec18b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{9109:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>m});var a=n(1527),s=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx)(t.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/22d8fa67.b0e350e5.js b/assets/js/22d8fa67.b0e350e5.js
deleted file mode 100644
index 675a8bc4d0..0000000000
--- a/assets/js/22d8fa67.b0e350e5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{9109:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>m});var a=n(1527),s=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx)(t.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/29b208a4.2d492f4e.js b/assets/js/29b208a4.2d492f4e.js
new file mode 100644
index 0000000000..0bef403a6b
--- /dev/null
+++ b/assets/js/29b208a4.2d492f4e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6152],{4740:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsxs)(t.ul,{c [...]
\ No newline at end of file
diff --git a/assets/js/29b208a4.8636eaf3.js b/assets/js/29b208a4.8636eaf3.js
deleted file mode 100644
index 2503b05f19..0000000000
--- a/assets/js/29b208a4.8636eaf3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6152],{4740:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsxs)(t.ul,{c [...]
\ No newline at end of file
diff --git a/assets/js/2cbf1097.f438693b.js b/assets/js/2cbf1097.14a87a8c.js
similarity index 74%
rename from assets/js/2cbf1097.f438693b.js
rename to assets/js/2cbf1097.14a87a8c.js
index b917dc3834..59ec284562 100644
--- a/assets/js/2cbf1097.f438693b.js
+++ b/assets/js/2cbf1097.14a87a8c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{9989:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>m,contentTitle:()=>h,default:()=>j,frontMatter:()=>u,metadata:()=>p,toc:()=>x});var t=s(1527),r=s(2175);function i(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,t.jsx)(n. [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{9989:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>m,contentTitle:()=>h,default:()=>j,frontMatter:()=>u,metadata:()=>p,toc:()=>x});var t=s(1527),r=s(2175);function i(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,t.jsx)(n. [...]
\ No newline at end of file
diff --git a/assets/js/355132e1.f69238c1.js b/assets/js/355132e1.ae0058c1.js
similarity index 87%
rename from assets/js/355132e1.f69238c1.js
rename to assets/js/355132e1.ae0058c1.js
index b9f598d1b7..68126ca068 100644
--- a/assets/js/355132e1.f69238c1.js
+++ b/assets/js/355132e1.ae0058c1.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6664],{6802:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>o});var t=n(1527),i=n(2175);const a={title:"Verify a release candidate",sidebar_position:4},r=void 0,c={id:"committers/verify",title:"Verify a release candidate",description:"To verify a release candidate, the following checklist could be used:",source:"@site/community/committ [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6664],{6802:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>a,metadata:()=>c,toc:()=>o});var t=n(1527),i=n(2175);const a={title:"Verify a release candidate",sidebar_position:4},r=void 0,c={id:"committers/verify",title:"Verify a release candidate",description:"To verify a release candidate, the following checklist could be used:",source:"@site/community/committ [...]
\ No newline at end of file
diff --git a/assets/js/3632610d.02e78cd9.js b/assets/js/3632610d.02e78cd9.js
new file mode 100644
index 0000000000..1c477f10a1
--- /dev/null
+++ b/assets/js/3632610d.02e78cd9.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2963],{5013:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/3632610d.33c03be8.js b/assets/js/3632610d.33c03be8.js
deleted file mode 100644
index d600866a5e..0000000000
--- a/assets/js/3632610d.33c03be8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2963],{5013:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/381c04e3.62bf3b12.js b/assets/js/381c04e3.62bf3b12.js
deleted file mode 100644
index c749747b4e..0000000000
--- a/assets/js/381c04e3.62bf3b12.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1725],{7917:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>p});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/381c04e3.748605e2.js b/assets/js/381c04e3.748605e2.js
new file mode 100644
index 0000000000..707aed2137
--- /dev/null
+++ b/assets/js/381c04e3.748605e2.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1725],{7917:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>p});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/39a95de5.bf6d2651.js b/assets/js/39a95de5.830fb55e.js
similarity index 53%
rename from assets/js/39a95de5.bf6d2651.js
rename to assets/js/39a95de5.830fb55e.js
index c685e645c6..71d91ad247 100644
--- a/assets/js/39a95de5.bf6d2651.js
+++ b/assets/js/39a95de5.830fb55e.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5737],{1851:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>h,default:()=>j,frontMatter:()=>u,metadata:()=>p,toc:()=>x});var s=t(1527),i=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5737],{1851:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>f,contentTitle:()=>h,default:()=>j,frontMatter:()=>u,metadata:()=>p,toc:()=>x});var s=t(1527),i=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/3f2bc239.ce266b60.js b/assets/js/3f2bc239.1f0dff2c.js
similarity index 74%
rename from assets/js/3f2bc239.ce266b60.js
rename to assets/js/3f2bc239.1f0dff2c.js
index c7e9f14452..0687ee25e7 100644
--- a/assets/js/3f2bc239.ce266b60.js
+++ b/assets/js/3f2bc239.1f0dff2c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4263],{5312:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=s(1527),t=s(2175);const i={title:"Create a release",sidebar_position:3},r=void 0,o={id:"committers/release",title:"Create a release",description:"This document mainly introduces how the release manager",source:"@site/community/committers/release.md",sourceDirName:"co [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4263],{5312:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=s(1527),t=s(2175);const i={title:"Create a release",sidebar_position:3},r=void 0,o={id:"committers/release",title:"Create a release",description:"This document mainly introduces how the release manager",source:"@site/community/committers/release.md",sourceDirName:"co [...]
\ No newline at end of file
diff --git a/assets/js/42347498.0992da94.js b/assets/js/42347498.0992da94.js
deleted file mode 100644
index 0718441ceb..0000000000
--- a/assets/js/42347498.0992da94.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7254],{8202:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/42347498.0b59a173.js b/assets/js/42347498.0b59a173.js
new file mode 100644
index 0000000000..b49ad0c476
--- /dev/null
+++ b/assets/js/42347498.0b59a173.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7254],{8202:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/434bbc94.254b51a6.js b/assets/js/434bbc94.254b51a6.js
deleted file mode 100644
index 15e496c2c0..0000000000
--- a/assets/js/434bbc94.254b51a6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{6404:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/434bbc94.3cd6d820.js b/assets/js/434bbc94.3cd6d820.js
new file mode 100644
index 0000000000..a7fbc1ec8a
--- /dev/null
+++ b/assets/js/434bbc94.3cd6d820.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{6404:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/4e2d8f56.7e2c8b6b.js b/assets/js/4e2d8f56.7e2c8b6b.js
new file mode 100644
index 0000000000..f400582998
--- /dev/null
+++ b/assets/js/4e2d8f56.7e2c8b6b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6752],{8723:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),l=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/4e2d8f56.ef996edd.js b/assets/js/4e2d8f56.ef996edd.js
deleted file mode 100644
index 746b164ec4..0000000000
--- a/assets/js/4e2d8f56.ef996edd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6752],{8723:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),l=n(2175);function r(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/500d55cb.49c63d49.js b/assets/js/500d55cb.49c63d49.js
deleted file mode 100644
index 8ee2b7a574..0000000000
--- a/assets/js/500d55cb.49c63d49.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7489],{6734:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/500d55cb.84b03eab.js b/assets/js/500d55cb.84b03eab.js
new file mode 100644
index 0000000000..5468652f1f
--- /dev/null
+++ b/assets/js/500d55cb.84b03eab.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7489],{6734:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/57a16c1d.17074cfa.js b/assets/js/57a16c1d.17074cfa.js
deleted file mode 100644
index 93086d514c..0000000000
--- a/assets/js/57a16c1d.17074cfa.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3016:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var r=n(1527),s=n(2175);function a(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r.jsx)(t. [...]
\ No newline at end of file
diff --git a/assets/js/57a16c1d.bdc8d8ff.js b/assets/js/57a16c1d.bdc8d8ff.js
new file mode 100644
index 0000000000..86bd6f9a0e
--- /dev/null
+++ b/assets/js/57a16c1d.bdc8d8ff.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3016:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var r=n(1527),s=n(2175);function a(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r.jsx)(t. [...]
\ No newline at end of file
diff --git a/assets/js/592d1076.40847193.js b/assets/js/592d1076.40847193.js
new file mode 100644
index 0000000000..1cc46a0f10
--- /dev/null
+++ b/assets/js/592d1076.40847193.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[990],{1760:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/592d1076.de4e57ee.js b/assets/js/592d1076.de4e57ee.js
deleted file mode 100644
index 7468214c9a..0000000000
--- a/assets/js/592d1076.de4e57ee.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[990],{1760:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/621b831b.0871d227.js b/assets/js/621b831b.0871d227.js
deleted file mode 100644
index d0de12082f..0000000000
--- a/assets/js/621b831b.0871d227.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4551],{6611:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["As known as ",(0,s.jsx)(n.code,{children [...]
\ No newline at end of file
diff --git a/assets/js/621b831b.5c371113.js b/assets/js/621b831b.5c371113.js
new file mode 100644
index 0000000000..1006201f57
--- /dev/null
+++ b/assets/js/621b831b.5c371113.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4551],{6611:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["As known as ",(0,s.jsx)(n.code,{children [...]
\ No newline at end of file
diff --git a/assets/js/65bf2b43.1dbf3b13.js b/assets/js/65bf2b43.1dbf3b13.js
deleted file mode 100644
index fda2dbb5fd..0000000000
--- a/assets/js/65bf2b43.1dbf3b13.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2115],{4504:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),l=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/65bf2b43.5058e4b5.js b/assets/js/65bf2b43.5058e4b5.js
new file mode 100644
index 0000000000..a5c7f90e9c
--- /dev/null
+++ b/assets/js/65bf2b43.5058e4b5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2115],{4504:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),l=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,l.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/67ecc70e.8e2c4717.js b/assets/js/67ecc70e.8e2c4717.js
new file mode 100644
index 0000000000..5f36265e4e
--- /dev/null
+++ b/assets/js/67ecc70e.8e2c4717.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4434],{1912:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var a=n(1527),s=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx [...]
\ No newline at end of file
diff --git a/assets/js/67ecc70e.df974570.js b/assets/js/67ecc70e.df974570.js
deleted file mode 100644
index 37c3954dd1..0000000000
--- a/assets/js/67ecc70e.df974570.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4434],{1912:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var a=n(1527),s=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6a41242b.9f7e7786.js b/assets/js/6a41242b.9f7e7786.js
new file mode 100644
index 0000000000..11a13c3466
--- /dev/null
+++ b/assets/js/6a41242b.9f7e7786.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5571],{6575:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>p});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6a41242b.a9183d11.js b/assets/js/6a41242b.a9183d11.js
deleted file mode 100644
index 962861aa37..0000000000
--- a/assets/js/6a41242b.a9183d11.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5571],{6575:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6dc695d1.00dcad6f.js b/assets/js/6dc695d1.00dcad6f.js
new file mode 100644
index 0000000000..5085053d72
--- /dev/null
+++ b/assets/js/6dc695d1.00dcad6f.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5982],{3335:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>f,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var a=t(1527),s=t(2175);function i(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6dc695d1.9b56b7cc.js b/assets/js/6dc695d1.9b56b7cc.js
deleted file mode 100644
index 63410597f8..0000000000
--- a/assets/js/6dc695d1.9b56b7cc.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5982],{3335:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>f,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var a=t(1527),s=t(2175);function i(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6f4d3fa1.0a825b20.js b/assets/js/6f4d3fa1.0a825b20.js
new file mode 100644
index 0000000000..53ecd2f9e1
--- /dev/null
+++ b/assets/js/6f4d3fa1.0a825b20.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5885],{5854:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/6f4d3fa1.2ccbdfcd.js b/assets/js/6f4d3fa1.2ccbdfcd.js
deleted file mode 100644
index b95fbd043b..0000000000
--- a/assets/js/6f4d3fa1.2ccbdfcd.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5885],{5854:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/7263c0b5.0511ee7b.js b/assets/js/7263c0b5.0511ee7b.js
deleted file mode 100644
index d854ea7299..0000000000
--- a/assets/js/7263c0b5.0511ee7b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4649],{2203:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>p});var a=t(1527),s=t(2175);function r(e){const n={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx)(n.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/7263c0b5.7f75e930.js b/assets/js/7263c0b5.7f75e930.js
new file mode 100644
index 0000000000..808ee46370
--- /dev/null
+++ b/assets/js/7263c0b5.7f75e930.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4649],{2203:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>p});var a=t(1527),s=t(2175);function r(e){const n={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,a.jsx)(n.p,{chi [...]
\ No newline at end of file
diff --git a/assets/js/8070e160.098f553e.js b/assets/js/8070e160.098f553e.js
new file mode 100644
index 0000000000..2417bd28cd
--- /dev/null
+++ b/assets/js/8070e160.098f553e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2651],{3866:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>r});var t=a(1527),i=a(2175);const l={title:"Quickstart",sidebar_position:3},o=void 0,d={id:"quickstart",title:"Quickstart",description:"Apache OpenDAL\u2122 can be easily integrated into different software with its Rust core and multilingual bindings.",source:"@site/docs/quick [...]
\ No newline at end of file
diff --git a/assets/js/8070e160.ccca10ea.js b/assets/js/8070e160.ccca10ea.js
deleted file mode 100644
index f7f7249972..0000000000
--- a/assets/js/8070e160.ccca10ea.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2651],{3866:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>r});var t=a(1527),i=a(2175);const l={title:"Quickstart",sidebar_position:3},o=void 0,d={id:"quickstart",title:"Quickstart",description:"Apache OpenDAL\u2122 can be easily integrated into different software with its Rust core and multilingual bindings.",source:"@site/docs/quick [...]
\ No newline at end of file
diff --git a/assets/js/8cc9519e.4c766995.js b/assets/js/8cc9519e.03f9c922.js
similarity index 70%
rename from assets/js/8cc9519e.4c766995.js
rename to assets/js/8cc9519e.03f9c922.js
index 84aba26b92..2518656923 100644
--- a/assets/js/8cc9519e.4c766995.js
+++ b/assets/js/8cc9519e.03f9c922.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{9755:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var i=t(1527),n=t(2175);function c(e){const s={h2:"h2",input:"input",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,i.jsx)(s.p,{children:"This service can be use [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{9755:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>r,default:()=>u,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var i=t(1527),n=t(2175);function c(e){const s={h2:"h2",input:"input",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,i.jsx)(s.p,{children:"This service can be use [...]
\ No newline at end of file
diff --git a/assets/js/8f4159f2.f0f58ab5.js b/assets/js/8f4159f2.f900c032.js
similarity index 66%
rename from assets/js/8f4159f2.f0f58ab5.js
rename to assets/js/8f4159f2.f900c032.js
index 3ac73db095..a6e8c33217 100644
--- a/assets/js/8f4159f2.f0f58ab5.js
+++ b/assets/js/8f4159f2.f900c032.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{6282:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>d,metadata:()=>r,toc:()=>p});var i=t(1527),n=t(2175);function c(e){const s={h2:"h2",input:"input",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,i.jsx)(s.p,{children:"This service can be use [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{6282:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>o,contentTitle:()=>d,default:()=>m,frontMatter:()=>l,metadata:()=>r,toc:()=>p});var i=t(1527),n=t(2175);function c(e){const s={h2:"h2",input:"input",li:"li",p:"p",ul:"ul",...(0,n.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(s.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,i.jsx)(s.p,{children:"This service can be use [...]
\ No newline at end of file
diff --git a/assets/js/8fb00c63.7af5f290.js b/assets/js/8fb00c63.7af5f290.js
new file mode 100644
index 0000000000..15634dc4c5
--- /dev/null
+++ b/assets/js/8fb00c63.7af5f290.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4600],{8608:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/8fb00c63.cd34aeee.js b/assets/js/8fb00c63.cd34aeee.js
deleted file mode 100644
index cc4c83ef0f..0000000000
--- a/assets/js/8fb00c63.cd34aeee.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4600],{8608:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/939f74f6.00d640ed.js b/assets/js/939f74f6.00d640ed.js
deleted file mode 100644
index 7323e9c99e..0000000000
--- a/assets/js/939f74f6.00d640ed.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4277],{7073:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/939f74f6.7b356ef0.js b/assets/js/939f74f6.7b356ef0.js
new file mode 100644
index 0000000000..1e5ccca949
--- /dev/null
+++ b/assets/js/939f74f6.7b356ef0.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4277],{7073:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>b,frontMatter:()=>o,metadata:()=>u,toc:()=>p});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/a0405932.bd4be36e.js b/assets/js/a0405932.bd4be36e.js
new file mode 100644
index 0000000000..15bdffd6ea
--- /dev/null
+++ b/assets/js/a0405932.bd4be36e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3033:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/a0405932.fb53b40e.js b/assets/js/a0405932.fb53b40e.js
deleted file mode 100644
index ab1ec72dc4..0000000000
--- a/assets/js/a0405932.fb53b40e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3033:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx)(t.p,{chil [...]
\ No newline at end of file
diff --git a/assets/js/b114cefa.1f5c6818.js b/assets/js/b114cefa.1f5c6818.js
deleted file mode 100644
index 725e9991cf..0000000000
--- a/assets/js/b114cefa.1f5c6818.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2161],{9571:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var r=t(1527),s=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r.jsx [...]
\ No newline at end of file
diff --git a/assets/js/b114cefa.54ed88c6.js b/assets/js/b114cefa.54ed88c6.js
new file mode 100644
index 0000000000..685cc0d575
--- /dev/null
+++ b/assets/js/b114cefa.54ed88c6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2161],{9571:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var r=t(1527),s=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,r.jsx [...]
\ No newline at end of file
diff --git a/assets/js/b56f9725.3eb8c75b.js b/assets/js/b56f9725.3eb8c75b.js
deleted file mode 100644
index 2c9d7879bc..0000000000
--- a/assets/js/b56f9725.3eb8c75b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{4958:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),a=n(2175);function r(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx) [...]
\ No newline at end of file
diff --git a/assets/js/b56f9725.f50eed34.js b/assets/js/b56f9725.f50eed34.js
new file mode 100644
index 0000000000..33cccbb03e
--- /dev/null
+++ b/assets/js/b56f9725.f50eed34.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{4958:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx) [...]
\ No newline at end of file
diff --git a/assets/js/bb5b2057.c07f0294.js b/assets/js/bb5b2057.c07f0294.js
new file mode 100644
index 0000000000..fff71bb9d6
--- /dev/null
+++ b/assets/js/bb5b2057.c07f0294.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{5279:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/bb5b2057.fed158b9.js b/assets/js/bb5b2057.fed158b9.js
deleted file mode 100644
index b3699d8c57..0000000000
--- a/assets/js/bb5b2057.fed158b9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{5279:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/c0600a1b.2c8298cf.js b/assets/js/c0600a1b.2c8298cf.js
deleted file mode 100644
index c9148fc160..0000000000
--- a/assets/js/c0600a1b.2c8298cf.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8874],{5329:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/c0600a1b.a0e775d5.js b/assets/js/c0600a1b.a0e775d5.js
new file mode 100644
index 0000000000..644a042f42
--- /dev/null
+++ b/assets/js/c0600a1b.a0e775d5.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8874],{5329:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/c46c6b55.dd15f356.js b/assets/js/c46c6b55.dd15f356.js
new file mode 100644
index 0000000000..8abb25b69c
--- /dev/null
+++ b/assets/js/c46c6b55.dd15f356.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5927],{7709:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/c46c6b55.f684b7e8.js b/assets/js/c46c6b55.f684b7e8.js
deleted file mode 100644
index 25af342359..0000000000
--- a/assets/js/c46c6b55.f684b7e8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5927],{7709:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>d,default:()=>b,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=n(1527),r=n(2175);function a(e){const t={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/c6ab695b.db8d068d.js b/assets/js/c6ab695b.f6a187ef.js
similarity index 50%
rename from assets/js/c6ab695b.db8d068d.js
rename to assets/js/c6ab695b.f6a187ef.js
index 9ed9e28200..497e4eab18 100644
--- a/assets/js/c6ab695b.db8d068d.js
+++ b/assets/js/c6ab695b.f6a187ef.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{6614:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>b,frontMatter:()=>d,metadata:()=>u,toc:()=>p});var s=n(1527),i=n(2175);function r(e){const t={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"There two implementations of WebHDFS REST  [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{6614:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>h,contentTitle:()=>c,default:()=>b,frontMatter:()=>d,metadata:()=>u,toc:()=>p});var s=n(1527),i=n(2175);function r(e){const t={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.p,{children:"There two implementations of WebHDFS REST  [...]
\ No newline at end of file
diff --git a/assets/js/cc62039a.c4aff87f.js b/assets/js/cc62039a.3009b468.js
similarity index 58%
rename from assets/js/cc62039a.c4aff87f.js
rename to assets/js/cc62039a.3009b468.js
index 007047be30..dc47fc4e57 100644
--- a/assets/js/cc62039a.c4aff87f.js
+++ b/assets/js/cc62039a.3009b468.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{4217:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>m,frontMatter:()=>c,metadata:()=>h,toc:()=>p});var t=s(1527),r=s(2175);function i(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"A distributed file system that provides  [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{4217:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>u,contentTitle:()=>d,default:()=>m,frontMatter:()=>c,metadata:()=>h,toc:()=>p});var t=s(1527),r=s(2175);function i(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.p,{children:"A distributed file system that provides  [...]
\ No newline at end of file
diff --git a/assets/js/d3c0d8d5.5898649e.js b/assets/js/d3c0d8d5.5898649e.js
deleted file mode 100644
index f78846ef20..0000000000
--- a/assets/js/d3c0d8d5.5898649e.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4790],{3529:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/d3c0d8d5.b3874a8e.js b/assets/js/d3c0d8d5.b3874a8e.js
new file mode 100644
index 0000000000..16394c853b
--- /dev/null
+++ b/assets/js/d3c0d8d5.b3874a8e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4790],{3529:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>m,frontMatter:()=>o,metadata:()=>d,toc:()=>h});var s=t(1527),a=t(2175);function r(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/ddccef4c.cab63244.js b/assets/js/ddccef4c.cab63244.js
deleted file mode 100644
index 7595a15fee..0000000000
--- a/assets/js/ddccef4c.cab63244.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[9826],{627:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx) [...]
\ No newline at end of file
diff --git a/assets/js/ddccef4c.fcfc6397.js b/assets/js/ddccef4c.fcfc6397.js
new file mode 100644
index 0000000000..40f0b9fa16
--- /dev/null
+++ b/assets/js/ddccef4c.fcfc6397.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[9826],{627:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>x,frontMatter:()=>o,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx) [...]
\ No newline at end of file
diff --git a/assets/js/e892cec6.05912da2.js b/assets/js/e892cec6.05912da2.js
deleted file mode 100644
index 328a0146e5..0000000000
--- a/assets/js/e892cec6.05912da2.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{8627:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/e892cec6.2e21520b.js b/assets/js/e892cec6.2e21520b.js
new file mode 100644
index 0000000000..24658a6970
--- /dev/null
+++ b/assets/js/e892cec6.2e21520b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{8627:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>b,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0,s.jsx [...]
\ No newline at end of file
diff --git a/assets/js/eec267e4.9d9f0cda.js b/assets/js/eec267e4.9d9f0cda.js
deleted file mode 100644
index 7b9ad5b86f..0000000000
--- a/assets/js/eec267e4.9d9f0cda.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2217],{3453:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["This service will visit the ",(0,s.jsx)( [...]
\ No newline at end of file
diff --git a/assets/js/eec267e4.f9f80a20.js b/assets/js/eec267e4.f9f80a20.js
new file mode 100644
index 0000000000..7dfd1b0083
--- /dev/null
+++ b/assets/js/eec267e4.f9f80a20.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2217],{3453:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>p});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(n.p,{children:["This service will visit the ",(0,s.jsx)( [...]
\ No newline at end of file
diff --git a/assets/js/f1ca5a39.10af6255.js b/assets/js/f1ca5a39.10af6255.js
new file mode 100644
index 0000000000..5d836a9e94
--- /dev/null
+++ b/assets/js/f1ca5a39.10af6255.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{6633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0 [...]
\ No newline at end of file
diff --git a/assets/js/f1ca5a39.3cef5b65.js b/assets/js/f1ca5a39.3cef5b65.js
deleted file mode 100644
index 84690aa871..0000000000
--- a/assets/js/f1ca5a39.3cef5b65.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{6633:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>d,default:()=>m,frontMatter:()=>c,metadata:()=>u,toc:()=>h});var s=t(1527),r=t(2175);function a(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"capabilities",children:"Capabilities"}),"\n",(0 [...]
\ No newline at end of file
diff --git a/assets/js/f9145722.5dc203a8.js b/assets/js/f9145722.5dc203a8.js
new file mode 100644
index 0000000000..37c5da8615
--- /dev/null
+++ b/assets/js/f9145722.5dc203a8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6529],{9638:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>f,frontMatter:()=>c,metadata:()=>u,toc:()=>p});var r=t(1527),s=t(2175);function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"})," [...]
\ No newline at end of file
diff --git a/assets/js/f9145722.884be9e8.js b/assets/js/f9145722.884be9e8.js
deleted file mode 100644
index cf17a4bf0c..0000000000
--- a/assets/js/f9145722.884be9e8.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6529],{9638:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>h,contentTitle:()=>d,default:()=>f,frontMatter:()=>c,metadata:()=>u,toc:()=>p});var r=t(1527),s=t(2175);function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",input:"input",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"capabilities",children:"Capabilities"})," [...]
\ No newline at end of file
diff --git a/assets/js/fde7cc64.061b2a2b.js b/assets/js/fde7cc64.061b2a2b.js
deleted file mode 100644
index 010fc3060c..0000000000
--- a/assets/js/fde7cc64.061b2a2b.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3454],{1625:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var a=t(1527),s=t(2175);function r(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabil [...]
\ No newline at end of file
diff --git a/assets/js/fde7cc64.d3606cf1.js b/assets/js/fde7cc64.d3606cf1.js
new file mode 100644
index 0000000000..203ffb3b2d
--- /dev/null
+++ b/assets/js/fde7cc64.d3606cf1.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3454],{1625:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>u,default:()=>f,frontMatter:()=>c,metadata:()=>d,toc:()=>h});var a=t(1527),s=t(2175);function r(e){const n={a:"a",code:"code",del:"del",h2:"h2",h3:"h3",input:"input",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"capabilities",children:"Capabil [...]
\ No newline at end of file
diff --git a/assets/js/main.a9b5395f.js b/assets/js/main.2740ff97.js
similarity index 98%
rename from assets/js/main.a9b5395f.js
rename to assets/js/main.2740ff97.js
index e22135444e..9ec5dc3378 100644
--- a/assets/js/main.a9b5395f.js
+++ b/assets/js/main.2740ff97.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.a9b5395f.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{8852:(e,t,n)=>{var r={"./prism-groovy":1199,"./prism-java":955,"./prism-rust":457};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8852},7812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(9010),o=n.n(r),a=n(6887);const  [...]
\ No newline at end of file
+/*! For license information please see main.2740ff97.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{8852:(e,t,n)=>{var r={"./prism-groovy":1199,"./prism-java":955,"./prism-rust":457};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=8852},7812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(959);var r=n(9010),o=n.n(r),a=n(6887);const  [...]
\ No newline at end of file
diff --git a/assets/js/main.a9b5395f.js.LICENSE.txt b/assets/js/main.2740ff97.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.a9b5395f.js.LICENSE.txt
rename to assets/js/main.2740ff97.js.LICENSE.txt
diff --git a/assets/js/runtime~main.8256c91e.js b/assets/js/runtime~main.3d561265.js
similarity index 80%
rename from assets/js/runtime~main.8256c91e.js
rename to assets/js/runtime~main.3d561265.js
index 108b81d5a9..1f0127a237 100644
--- a/assets/js/runtime~main.8256c91e.js
+++ b/assets/js/runtime~main.3d561265.js
@@ -1 +1 @@
-(()=>{"use strict";var e,c,a,f,b,d={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={exports:{}};return d[e].call(a.exports,a,a.exports,r),a.exports}r.m=d,e=[],r.O=(c,a,f,b)=>{if(!a){var d=1/0;for(i=0;i<e.length;i++){a=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<a.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(c=n)}}return c}b=b||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,c,a,f,b,d={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={exports:{}};return d[e].call(a.exports,a,a.exports,r),a.exports}r.m=d,e=[],r.O=(c,a,f,b)=>{if(!a){var d=1/0;for(i=0;i<e.length;i++){a=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<a.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(c=n)}}return c}b=b||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/apache-opendal-graduated/index.html b/blog/apache-opendal-graduated/index.html
index 54cd23c093..c57d2f4c21 100644
--- a/blog/apache-opendal-graduated/index.html
+++ b/blog/apache-opendal-graduated/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™ is now Graduated | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-graduated"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/apache-opendal-participates-in-gsoc-2024/index.html b/blog/apache-opendal-participates-in-gsoc-2024/index.html
index 6c95c67ef1..1d16ccb06c 100644
--- a/blog/apache-opendal-participates-in-gsoc-2024/index.html
+++ b/blog/apache-opendal-participates-in-gsoc-2024/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™ participates in Google Summer of Code 2024 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/apache-opendal-participates-in-gsoc-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="e [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/archive/index.html b/blog/archive/index.html
index ff775b0b2d..433ddf9e6e 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Archive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/archive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/how-opendal-read-data/index.html b/blog/how-opendal-read-data/index.html
index 52f2417344..d64e1cf7c8 100644
--- a/blog/how-opendal-read-data/index.html
+++ b/blog/how-opendal-read-data/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™ Internal: Data Reading | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/how-opendal-read-data"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/index.html b/blog/index.html
index e4237e30e2..9402303ae6 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Blog | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="o [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index b185ac21ff..ebb0cd5185 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™: Access Data Freely | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-access-data-freely"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusau [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index 63bcaa6d00..b70f3b87ec 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Way to Go: OpenDAL successfully entered Apache Incubator | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-entered-apache-incubator"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta d [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/owo-1/index.html b/blog/owo-1/index.html
index 15542bb042..2c37ed7b1a 100644
--- a/blog/owo-1/index.html
+++ b/blog/owo-1/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">OwO #1: The v0.40 Release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/owo-1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><met [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index 174eef6cc5..1d5f0b094c 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">4 posts tagged with &quot;announcement&quot; | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/announcement"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/index.html b/blog/tags/index.html
index bc005ae160..efe4b85a9c 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Tags | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" proper [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/internal/index.html b/blog/tags/internal/index.html
index f118251daa..e2726bed83 100644
--- a/blog/tags/internal/index.html
+++ b/blog/tags/internal/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">One post tagged with &quot;internal&quot; | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/internal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lang [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/blog/tags/owo/index.html b/blog/tags/owo/index.html
index 9f1b14904e..db9fc363da 100644
--- a/blog/tags/owo/index.html
+++ b/blog/tags/owo/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">One post tagged with &quot;owo&quot; | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/owo"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" cont [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 5e52be7ebf..199ea2129c 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/committers"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/events/index.html b/community/category/events/index.html
index 5202bea136..1b5659c478 100644
--- a/community/category/events/index.html
+++ b/community/category/events/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Events | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/events"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta dat [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/pmc-members/index.html b/community/category/pmc-members/index.html
index 058bc34b17..f65179fdb8 100644
--- a/community/category/pmc-members/index.html
+++ b/community/category/pmc-members/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Committers | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/pmc-members"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"> [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 5fdaef8443..f84317848d 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Reference | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/category/reference"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/onboarding/index.html b/community/committers/onboarding/index.html
index cf105723cb..d1f37a2e97 100644
--- a/community/committers/onboarding/index.html
+++ b/community/committers/onboarding/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/reference/generate_release_note/index.html b/community/committers/reference/generate_release_note/index.html
index 8c6a409390..f5be8fe50a 100644
--- a/community/committers/reference/generate_release_note/index.html
+++ b/community/committers/reference/generate_release_note/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Generate release note | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/reference/generate_release_note"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name=" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/reference/setup_gpg/index.html b/community/committers/reference/setup_gpg/index.html
index d95b10221a..b0565ba50f 100644
--- a/community/committers/reference/setup_gpg/index.html
+++ b/community/committers/reference/setup_gpg/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Setup GPG key | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/reference/setup_gpg"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language"  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/release/index.html b/community/committers/release/index.html
index e965d0d819..3ad6ea4bb6 100644
--- a/community/committers/release/index.html
+++ b/community/committers/release/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Create a release | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/release"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content=" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -158,6 +158,10 @@ Additionally, you should also drop the staging Maven artifacts on <a href="https
 <div class="codeBlockContainer_MfrX theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__QvJ"><pre tabindex="0" class="prism-code language-text codeBlock_xMeh thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_lAHS"><span class="token-line" style="color:#393A34"><span class="token plain">[RESULT][VOTE] Release Apache OpenDAL ${release_version} - Vote Round 1</span><br></span></code></pre><di [...]
 <p>Content:</p>
 <div class="codeBlockContainer_MfrX theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__QvJ"><pre tabindex="0" class="prism-code language-text codeBlock_xMeh thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_lAHS"><span class="token-line" style="color:#393A34"><span class="token plain">Hello, Apache OpenDAL Community,</span><br></span><span class="token-line" style="color:#393A34"><span cl [...]
+<p>It&#x27;s better to use the real name or the public name which is displayed on the voters&#x27; profile page,
+or Apache ID of the voter, to show who voted in the vote result email,
+and avoid using nicknames, it will make the vote result hard for others to track the voter.
+We should make sure the binding votes are from the people who have the right to vote the binding one.</p>
 <p>Example: <a href="https://lists.apache.org/thread/xk5myl10mztcfotn59oo59s4ckvojds6" target="_blank" rel="noopener noreferrer">https://lists.apache.org/thread/xk5myl10mztcfotn59oo59s4ckvojds6</a></p>
 <h2 class="anchor anchorWithStickyNavbar_VwHQ" id="official-release">Official Release<a href="#official-release" class="hash-link" aria-label="Direct link to Official Release" title="Direct link to Official Release">​</a></h2>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="push-the-release-git-tag">Push the release git tag<a href="#push-the-release-git-tag" class="hash-link" aria-label="Direct link to Push the release git tag" title="Direct link to Push the release git tag">​</a></h3>
diff --git a/community/committers/request_for_adding_secrets/index.html b/community/committers/request_for_adding_secrets/index.html
index ed54aeecac..87eece8737 100644
--- a/community/committers/request_for_adding_secrets/index.html
+++ b/community/committers/request_for_adding_secrets/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Request for adding secrets | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/request_for_adding_secrets"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name=" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/committers/verify/index.html b/community/committers/verify/index.html
index a8d3945d1e..2effc0fe53 100644
--- a/community/committers/verify/index.html
+++ b/community/committers/verify/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Verify a release candidate | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/committers/verify"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language"  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -60,8 +60,8 @@ or check it out from the repository:</p>
 <p>Download the artifacts from <code>https://repository.apache.org/content/repositories/orgapacheopendal-${maven_artifact_number}/</code>.</p>
 <p>You can check the follows:</p>
 <ul>
-<li>Checksum of JARs match the bundled checksum file.</li>
-<li>Signature of JARs match the bundled signature file.</li>
+<li>Checksum of JARs matches the bundled checksum file.</li>
+<li>Signature of JARs matches the bundled signature file.</li>
 <li>JARs is reproducible locally. This means you can build the JARs on your machine and verify the checksum is the same with the bundled one.</li>
 </ul>
 <p>The reproducibility requires the same JDK distribution and the same Maven distribution. You should use <a href="https://adoptium.net/temurin/releases/?version=8" target="_blank" rel="noopener noreferrer">Eclipse Temurin JDK 8</a> and the bundled Maven Wrapper to make the same artifacts.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/community/commit [...]
diff --git a/community/events/gsoc-proposal-guide/index.html b/community/events/gsoc-proposal-guide/index.html
index 655a812ff0..edbf113beb 100644
--- a/community/events/gsoc-proposal-guide/index.html
+++ b/community/events/gsoc-proposal-guide/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">GSoC Project Proposal Guidance | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/events/gsoc-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/index.html b/community/index.html
index 6d4b2d0baf..2c1dce7a67 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Community | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true"  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/maturity/index.html b/community/maturity/index.html
index f389f82522..e027e91891 100644
--- a/community/maturity/index.html
+++ b/community/maturity/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Maturity | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/maturity"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/news/index.html b/community/news/index.html
index ff50c27af3..5c2102904d 100644
--- a/community/news/index.html
+++ b/community/news/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">News | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/news"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/nominate-committer/index.html b/community/pmc_members/nominate-committer/index.html
index 92b77390c5..ce35bbea25 100644
--- a/community/pmc_members/nominate-committer/index.html
+++ b/community/pmc_members/nominate-committer/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Nominate Committer | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-committer"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/nominate-pmc-member/index.html b/community/pmc_members/nominate-pmc-member/index.html
index 365f35bfa9..0514a26eed 100644
--- a/community/pmc_members/nominate-pmc-member/index.html
+++ b/community/pmc_members/nominate-pmc-member/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Nominate PMC Member | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/nominate-pmc-member"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lan [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/onboarding/index.html b/community/pmc_members/onboarding/index.html
index 4a9495686d..622acac4d3 100644
--- a/community/pmc_members/onboarding/index.html
+++ b/community/pmc_members/onboarding/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Onboarding | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/pmc_members/podling-report/index.html b/community/pmc_members/podling-report/index.html
index b562a368d4..bd46c308fc 100644
--- a/community/pmc_members/podling-report/index.html
+++ b/community/pmc_members/podling-report/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Podling Status Reports | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/pmc_members/podling-report"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/community/security/index.html b/community/security/index.html
index 61cb8441f7..eaa5580ed3 100644
--- a/community/security/index.html
+++ b/community/security/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Security | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/community/security"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/category/integrations/index.html b/docs/category/integrations/index.html
index d6fc4b228a..28f78eb2b2 100644
--- a/docs/category/integrations/index.html
+++ b/docs/category/integrations/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Integrations | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/integrations"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/category/services/index.html b/docs/category/services/index.html
index 38b2cfb7ae..5b96929dda 100644
--- a/docs/category/services/index.html
+++ b/docs/category/services/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Services | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/services"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/docs/haskell/OpenDAL.html b/docs/haskell/OpenDAL.html
index fd5400e23f..ec809fc3ee 100644
--- a/docs/haskell/OpenDAL.html
+++ b/docs/haskell/OpenDAL.html
@@ -1,8 +1,8 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>OpenDAL</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="styleshee [...]
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>OpenDAL</title><link href="linuwial.css" rel="stylesheet" type="text/css" title="Linuwial" /><link rel="stylesheet" type="text/css" href="quick-jump.css" /><link rel="styleshee [...]
  We recommend using <code>OverloadedStrings</code> to construct a default config.</p><p>For example:</p><p>default config</p><pre>newOperator &quot;memory&quot;
 </pre><p>custom services config</p><pre>newOperator &quot;memory&quot; {ocConfig = HashMap.fromList [(&quot;root&quot;, &quot;/tmp&quot;)]}
 </pre><p>enable logging</p><pre>newOperator &quot;memory&quot; {ocLogAction = Just simpleMessageAction}
-</pre></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OperatorConfig" class="def">OperatorConfig</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ocScheme" class="def">ocScheme</a> :: <a href="file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/Data-String.html#t:String" title="Data.String">Str [...]
+</pre></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:OperatorConfig" class="def">OperatorConfig</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><ul><li><dfn class="src"><a id="v:ocScheme" class="def">ocScheme</a> :: <a href="file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/Data-String.html#t:String" title="Data.String">Str [...]
  Create an <code><a href="OpenDAL.html#t:Operator" title="OpenDAL">Operator</a></code> with <code><a href="OpenDAL.html#v:newOperator" title="OpenDAL">newOperator</a></code>.</p></div><div class="subs instances"><h4 class="instances details-toggle-control details-toggle" data-details-id="i:Operator">Instances</h4><details id="i:Operator" open="open"><summary class="hide-when-js-enabled">Instances details</summary><table><tr><td class="src clearfix"><span class="inst-left"><span class="in [...]
  Users can construct Lister by <code><a href="OpenDAL.html#v:listOp" title="OpenDAL">listOp</a></code> or <code><a href="OpenDAL.html#v:scanOp" title="OpenDAL">scanOp</a></code>.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:OpenDALError" class="def">OpenDALError</a> <a href="src/OpenDAL.html#OpenDALError" class="link">Source</a> <a href="#t:OpenDALError" class="selflink">#</a></p><div class="doc"><p>Represents an error that can occur when usin [...]
  This function will create a new handle to list entries.
diff --git a/docs/haskell/doc-index.json b/docs/haskell/doc-index.json
index 2a92fb4d53..3f8db9db20 100644
--- a/docs/haskell/doc-index.json
+++ b/docs/haskell/doc-index.json
@@ -1 +1 @@
-[{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:OperatorConfig\">OperatorConfig</a> = <a href=\"#v:OperatorConfig\">OperatorConfig</a> {<ul class=\"subs\"><li><a href=\"#v:ocScheme\">ocScheme</a> :: <a href=\"file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/Data-String.html#t:String\" title=\"Data.String\">String</a></li><li><a href=\"#v:ocConfig\">ocConfig</a> :: <a href=\"file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containe [...]
\ No newline at end of file
+[{"display_html":"<span class=\"keyword\">data</span> <a href=\"#t:OperatorConfig\">OperatorConfig</a> = <a href=\"#v:OperatorConfig\">OperatorConfig</a> {<ul class=\"subs\"><li><a href=\"#v:ocScheme\">ocScheme</a> :: <a href=\"file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/Data-String.html#t:String\" title=\"Data.String\">String</a></li><li><a href=\"#v:ocConfig\">ocConfig</a> :: <a href=\"file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containe [...]
\ No newline at end of file
diff --git a/docs/haskell/src/OpenDAL.FFI.html b/docs/haskell/src/OpenDAL.FFI.html
index 258494457e..dd558db3ce 100644
--- a/docs/haskell/src/OpenDAL.FFI.html
+++ b/docs/haskell/src/OpenDAL.FFI.html
@@ -25,15 +25,15 @@
 </span><span id="line-25"></span><span>
 </span><span id="line-26"></span><span class="hs-keyword">data</span><span> </span><span id="RawLister"><span class="annot"><a href="OpenDAL.FFI.html#RawLister"><span class="hs-identifier hs-var">RawLister</span></a></span></span><span>
 </span><span id="line-27"></span><span>
-</span><span id="line-28"></span><span class="hs-keyword">data</span><span> </span><span id="FFIResult"><span class="annot"><a href="OpenDAL.FFI.html#FFIResult"><span class="hs-identifier hs-var">FFIResult</span></a></span></span><span> </span><span id="local-6989586621679074439"><span class="annot"><a href="#local-6989586621679074439"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="FFIResult"><span class= [...]
+</span><span id="line-28"></span><span class="hs-keyword">data</span><span> </span><span id="FFIResult"><span class="annot"><a href="OpenDAL.FFI.html#FFIResult"><span class="hs-identifier hs-var">FFIResult</span></a></span></span><span> </span><span id="local-6989586621679074871"><span class="annot"><a href="#local-6989586621679074871"><span class="hs-identifier hs-type">a</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="FFIResult"><span class= [...]
 </span><span id="line-29"></span><span>  </span><span class="hs-special">{</span><span> </span><span id="ffiCode"><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var hs-var">ffiCode</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CUInt</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-30"></span><span>    </span><span id="dataPtr"><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
-</span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var hs-var">dataPtr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679074439"><span class="hs-identifier hs-type">a</span></a></span><span class= [...]
+</span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var hs-var">dataPtr</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679074871"><span class="hs-identifier hs-type">a</span></a></span><span class= [...]
 </span><span id="line-31"></span><span>    </span><span id="errorMessage"><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var hs-var">errorMessage</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span>
 </span><span id="line-32"></span><span>  </span><span class="hs-special">}</span><span>
-</span><span id="line-33"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074375"><span id="local-6989586621679074377"><span id="local-6989586621679074386"><span class="annot"><span class="annottext">Int -&gt; FFIResult a -&gt; ShowS
+</span><span id="line-33"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074807"><span id="local-6989586621679074809"><span id="local-6989586621679074818"><span class="annot"><span class="annottext">Int -&gt; FFIResult a -&gt; ShowS
 forall a. Int -&gt; FFIResult a -&gt; ShowS
 forall a. [FFIResult a] -&gt; ShowS
 forall a. FFIResult a -&gt; String
@@ -47,8 +47,8 @@ showsPrec :: Int -&gt; FFIResult a -&gt; ShowS
 $cshowsPrec :: forall a. Int -&gt; FFIResult a -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
 </span><span id="line-34"></span><span>
-</span><span id="line-35"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074364"><span id="local-6989586621679074366"><span id="local-6989586621679074368"><span id="local-6989586621679074370"><span id="local-6989586621679074427"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="hs-special [...]
-</span><span id="line-36"></span><span>  </span><span id="local-6989586621679074346"><span class="annot"><span class="annottext">sizeOf :: FFIResult a -&gt; Int
+</span><span id="line-35"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074796"><span id="local-6989586621679074798"><span id="local-6989586621679074800"><span id="local-6989586621679074802"><span id="local-6989586621679074859"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="hs-special [...]
+</span><span id="line-36"></span><span>  </span><span id="local-6989586621679074778"><span class="annot"><span class="annottext">sizeOf :: FFIResult a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">sizeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIResult a
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
@@ -59,82 +59,82 @@ $cshowsPrec :: forall a. Int -&gt; FFIResult a -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-37"></span><span>  </span><span id="local-6989586621679074339"><span class="annot"><span class="annottext">alignment :: FFIResult a -&gt; Int
+</span><span id="line-37"></span><span>  </span><span id="local-6989586621679074771"><span class="annot"><span class="annottext">alignment :: FFIResult a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">alignment</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIResult a
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alignment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-38"></span><span>  </span><span id="local-6989586621679074328"><span class="annot"><span class="annottext">peek :: Ptr (FFIResult a) -&gt; IO (FFIResult a)
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074326"><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074326"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-39"></span><span>    </span><span id="local-6989586621679074325"><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074325"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><span id="line-38"></span><span>  </span><span id="local-6989586621679074760"><span class="annot"><span class="annottext">peek :: Ptr (FFIResult a) -&gt; IO (FFIResult a)
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074758"><span class="annot"><span class="annottext">Ptr (FFIResult a)
+</span><a href="#local-6989586621679074758"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-39"></span><span>    </span><span id="local-6989586621679074757"><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074757"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074326"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074323"><span class="hs-identifier hs-var">codeOffset</span></a></span><span>
-</span><span id="line-40"></span><span>    </span><span id="local-6989586621679074322"><span class="annot"><span class="annottext">Ptr a
-</span><a href="#local-6989586621679074322"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074758"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074755"><span class="hs-identifier hs-var">codeOffset</span></a></span><span>
+</span><span id="line-40"></span><span>    </span><span id="local-6989586621679074754"><span class="annot"><span class="annottext">Ptr a
+</span><a href="#local-6989586621679074754"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074326"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074321"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span>
-</span><span id="line-41"></span><span>    </span><span id="local-6989586621679074320"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074320"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074758"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074753"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span>
+</span><span id="line-41"></span><span>    </span><span id="local-6989586621679074752"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074752"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074326"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074319"><span class="hs-identifier hs-var">errorMessageOffset</span></a></span><span>
+</span><a href="#local-6989586621679074758"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074751"><span class="hs-identifier hs-var">errorMessageOffset</span></a></span><span>
 </span><span id="line-42"></span><span>    </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. CUInt -&gt; Ptr a -&gt; CString -&gt; FFIResult a
 </span><a href="OpenDAL.FFI.html#FFIResult"><span class="hs-identifier hs-var">FFIResult</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074325"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr a
-</span><a href="#local-6989586621679074322"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074320"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074757"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr a
+</span><a href="#local-6989586621679074754"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074752"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-43"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-44"></span><span>      </span><span id="local-6989586621679074323"><span class="annot"><span class="annottext">codeOffset :: Int
-</span><a href="#local-6989586621679074323"><span class="hs-identifier hs-var hs-var">codeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-44"></span><span>      </span><span id="local-6989586621679074755"><span class="annot"><span class="annottext">codeOffset :: Int
+</span><a href="#local-6989586621679074755"><span class="hs-identifier hs-var hs-var">codeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-45"></span><span>      </span><span id="local-6989586621679074321"><span class="annot"><span class="annottext">dataPtrOffset :: Int
-</span><a href="#local-6989586621679074321"><span class="hs-identifier hs-var hs-var">dataPtrOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
+</span><span id="line-45"></span><span>      </span><span id="local-6989586621679074753"><span class="annot"><span class="annottext">dataPtrOffset :: Int
+</span><a href="#local-6989586621679074753"><span class="hs-identifier hs-var hs-var">dataPtrOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-46"></span><span>      </span><span id="local-6989586621679074319"><span class="annot"><span class="annottext">errorMessageOffset :: Int
-</span><a href="#local-6989586621679074319"><span class="hs-identifier hs-var hs-var">errorMessageOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074321"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-46"></span><span>      </span><span id="local-6989586621679074751"><span class="annot"><span class="annottext">errorMessageOffset :: Int
+</span><a href="#local-6989586621679074751"><span class="hs-identifier hs-var hs-var">errorMessageOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074753"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><spa [...]
-</span><span id="line-47"></span><span>  </span><span id="local-6989586621679074305"><span class="annot"><span class="annottext">poke :: Ptr (FFIResult a) -&gt; FFIResult a -&gt; IO ()
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074303"><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074303"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIResult"><span class="hs-identifier hs-type">FFIResult</span></a></span><span> </span><span id="local-6989586621679074302"><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074302"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621679074301"><span class="annot"><span class="annottext">Ptr a
-</span><a href="#local-6989586621679074301"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621679074300"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074300"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-47"></span><span>  </span><span id="local-6989586621679074737"><span class="annot"><span class="annottext">poke :: Ptr (FFIResult a) -&gt; FFIResult a -&gt; IO ()
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074735"><span class="annot"><span class="annottext">Ptr (FFIResult a)
+</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIResult"><span class="hs-identifier hs-type">FFIResult</span></a></span><span> </span><span id="local-6989586621679074734"><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074734"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span id="local-6989586621679074733"><span class="annot"><span class="annottext">Ptr a
+</span><a href="#local-6989586621679074733"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span id="local-6989586621679074732"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074732"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-48"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074303"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074298"><span class="hs-identifier hs-var">codeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074302"><span class="hs-identifier hs-var">s</span></a></span><span>
+</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074730"><span class="hs-identifier hs-var">codeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074734"><span class="hs-identifier hs-var">s</span></a></span><span>
 </span><span id="line-49"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074303"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074297"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr a
-</span><a href="#local-6989586621679074301"><span class="hs-identifier hs-var">d</span></a></span><span>
+</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074729"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr a
+</span><a href="#local-6989586621679074733"><span class="hs-identifier hs-var">d</span></a></span><span>
 </span><span id="line-50"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult a)
-</span><a href="#local-6989586621679074303"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074296"><span class="hs-identifier hs-var">errorMessageOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074300"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074728"><span class="hs-identifier hs-var">errorMessageOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074732"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-51"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-52"></span><span>      </span><span id="local-6989586621679074298"><span class="annot"><span class="annottext">codeOffset :: Int
-</span><a href="#local-6989586621679074298"><span class="hs-identifier hs-var hs-var">codeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-52"></span><span>      </span><span id="local-6989586621679074730"><span class="annot"><span class="annottext">codeOffset :: Int
+</span><a href="#local-6989586621679074730"><span class="hs-identifier hs-var hs-var">codeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-53"></span><span>      </span><span id="local-6989586621679074297"><span class="annot"><span class="annottext">dataPtrOffset :: Int
-</span><a href="#local-6989586621679074297"><span class="hs-identifier hs-var hs-var">dataPtrOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
+</span><span id="line-53"></span><span>      </span><span id="local-6989586621679074729"><span class="annot"><span class="annottext">dataPtrOffset :: Int
+</span><a href="#local-6989586621679074729"><span class="hs-identifier hs-var hs-var">dataPtrOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-54"></span><span>      </span><span id="local-6989586621679074296"><span class="annot"><span class="annottext">errorMessageOffset :: Int
-</span><a href="#local-6989586621679074296"><span class="hs-identifier hs-var hs-var">errorMessageOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074297"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-54"></span><span>      </span><span id="local-6989586621679074728"><span class="annot"><span class="annottext">errorMessageOffset :: Int
+</span><a href="#local-6989586621679074728"><span class="hs-identifier hs-var hs-var">errorMessageOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074729"><span class="hs-identifier hs-var">dataPtrOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><spa [...]
@@ -146,68 +146,68 @@ $cshowsPrec :: forall a. Int -&gt; FFIResult a -&gt; ShowS
 </span><a href="OpenDAL.FFI.html#bsLen"><span class="hs-identifier hs-var hs-var">bsLen</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span>
 </span><span id="line-59"></span><span>  </span><span class="hs-special">}</span><span>
 </span><span id="line-60"></span><span>
-</span><span id="line-61"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074274"><span id="local-6989586621679074276"><span id="local-6989586621679074278"><span id="local-6989586621679074280"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><sp [...]
-</span><span id="line-62"></span><span>  </span><span id="local-6989586621679074264"><span class="annot"><span class="annottext">sizeOf :: ByteSlice -&gt; Int
-</span><a href="#local-6989586621679074264"><span class="hs-identifier hs-var hs-var hs-var hs-var">sizeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">ByteSlice
+</span><span id="line-61"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074706"><span id="local-6989586621679074708"><span id="local-6989586621679074710"><span id="local-6989586621679074712"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><sp [...]
+</span><span id="line-62"></span><span>  </span><span id="local-6989586621679074696"><span class="annot"><span class="annottext">sizeOf :: ByteSlice -&gt; Int
+</span><a href="#local-6989586621679074696"><span class="hs-identifier hs-var hs-var hs-var hs-var">sizeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">ByteSlice
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/sha [...]
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-63"></span><span>  </span><span id="local-6989586621679074260"><span class="annot"><span class="annottext">alignment :: ByteSlice -&gt; Int
-</span><a href="#local-6989586621679074260"><span class="hs-identifier hs-var hs-var hs-var hs-var">alignment</span></a></span></span><span> </span><span class="annot"><span class="annottext">ByteSlice
+</span><span id="line-63"></span><span>  </span><span id="local-6989586621679074692"><span class="annot"><span class="annottext">alignment :: ByteSlice -&gt; Int
+</span><a href="#local-6989586621679074692"><span class="hs-identifier hs-var hs-var hs-var hs-var">alignment</span></a></span></span><span> </span><span class="annot"><span class="annottext">ByteSlice
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alignment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-64"></span><span>  </span><span id="local-6989586621679074254"><span class="annot"><span class="annottext">peek :: Ptr ByteSlice -&gt; IO ByteSlice
-</span><a href="#local-6989586621679074254"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074253"><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074253"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-65"></span><span>    </span><span id="local-6989586621679074252"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074252"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><span id="line-64"></span><span>  </span><span id="local-6989586621679074686"><span class="annot"><span class="annottext">peek :: Ptr ByteSlice -&gt; IO ByteSlice
+</span><a href="#local-6989586621679074686"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074685"><span class="annot"><span class="annottext">Ptr ByteSlice
+</span><a href="#local-6989586621679074685"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-65"></span><span>    </span><span id="local-6989586621679074684"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074684"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074253"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074251"><span class="hs-identifier hs-var">dataOffset</span></a></span><span>
-</span><span id="line-66"></span><span>    </span><span id="local-6989586621679074250"><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074250"><span class="hs-identifier hs-var">len</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074685"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074683"><span class="hs-identifier hs-var">dataOffset</span></a></span><span>
+</span><span id="line-66"></span><span>    </span><span id="local-6989586621679074682"><span class="annot"><span class="annottext">CSize
+</span><a href="#local-6989586621679074682"><span class="hs-identifier hs-var">len</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074253"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074249"><span class="hs-identifier hs-var">lenOffset</span></a></span><span>
+</span><a href="#local-6989586621679074685"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074681"><span class="hs-identifier hs-var">lenOffset</span></a></span><span>
 </span><span id="line-67"></span><span>    </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CString -&gt; CSize -&gt; ByteSlice
 </span><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-var">ByteSlice</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074252"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074250"><span class="hs-identifier hs-var">len</span></a></span><span>
+</span><a href="#local-6989586621679074684"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">CSize
+</span><a href="#local-6989586621679074682"><span class="hs-identifier hs-var">len</span></a></span><span>
 </span><span id="line-68"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-69"></span><span>      </span><span id="local-6989586621679074251"><span class="annot"><span class="annottext">dataOffset :: Int
-</span><a href="#local-6989586621679074251"><span class="hs-identifier hs-var hs-var">dataOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-69"></span><span>      </span><span id="local-6989586621679074683"><span class="annot"><span class="annottext">dataOffset :: Int
+</span><a href="#local-6989586621679074683"><span class="hs-identifier hs-var hs-var">dataOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-70"></span><span>      </span><span id="local-6989586621679074249"><span class="annot"><span class="annottext">lenOffset :: Int
-</span><a href="#local-6989586621679074249"><span class="hs-identifier hs-var hs-var">lenOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
+</span><span id="line-70"></span><span>      </span><span id="local-6989586621679074681"><span class="annot"><span class="annottext">lenOffset :: Int
+</span><a href="#local-6989586621679074681"><span class="hs-identifier hs-var hs-var">lenOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><spa [...]
-</span><span id="line-71"></span><span>  </span><span id="local-6989586621679074241"><span class="annot"><span class="annottext">poke :: Ptr ByteSlice -&gt; ByteSlice -&gt; IO ()
-</span><a href="#local-6989586621679074241"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074240"><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074240"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-type">ByteSlice</span></a></span><span> </span><span id="local-6989586621679074239"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074239"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span id="local-6989586621679074238"><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074238"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-71"></span><span>  </span><span id="local-6989586621679074673"><span class="annot"><span class="annottext">poke :: Ptr ByteSlice -&gt; ByteSlice -&gt; IO ()
+</span><a href="#local-6989586621679074673"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074672"><span class="annot"><span class="annottext">Ptr ByteSlice
+</span><a href="#local-6989586621679074672"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-type">ByteSlice</span></a></span><span> </span><span id="local-6989586621679074671"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074671"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span id="local-6989586621679074670"><span class="annot"><span class="annottext">CSize
+</span><a href="#local-6989586621679074670"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-72"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074240"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074237"><span class="hs-identifier hs-var">dataOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074239"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span>
+</span><a href="#local-6989586621679074672"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074669"><span class="hs-identifier hs-var">dataOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074671"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span>
 </span><span id="line-73"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr ByteSlice
-</span><a href="#local-6989586621679074240"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074236"><span class="hs-identifier hs-var">lenOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074238"><span class="hs-identifier hs-var">len</span></a></span><span>
+</span><a href="#local-6989586621679074672"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074668"><span class="hs-identifier hs-var">lenOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CSize
+</span><a href="#local-6989586621679074670"><span class="hs-identifier hs-var">len</span></a></span><span>
 </span><span id="line-74"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-75"></span><span>      </span><span id="local-6989586621679074237"><span class="annot"><span class="annottext">dataOffset :: Int
-</span><a href="#local-6989586621679074237"><span class="hs-identifier hs-var hs-var">dataOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-75"></span><span>      </span><span id="local-6989586621679074669"><span class="annot"><span class="annottext">dataOffset :: Int
+</span><a href="#local-6989586621679074669"><span class="hs-identifier hs-var hs-var">dataOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-76"></span><span>      </span><span id="local-6989586621679074236"><span class="annot"><span class="annottext">lenOffset :: Int
-</span><a href="#local-6989586621679074236"><span class="hs-identifier hs-var hs-var">lenOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
+</span><span id="line-76"></span><span>      </span><span id="local-6989586621679074668"><span class="annot"><span class="annottext">lenOffset :: Int
+</span><a href="#local-6989586621679074668"><span class="hs-identifier hs-var hs-var">lenOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Ptr</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><spa [...]
 </span><span id="line-77"></span><span>
@@ -229,7 +229,7 @@ $cshowsPrec :: forall a. Int -&gt; FFIResult a -&gt; ShowS
 </span><span id="line-86"></span><span>    </span><span id="ffiLastModified"><span class="annot"><span class="annottext">FFIMetadata -&gt; CString
 </span><a href="OpenDAL.FFI.html#ffiLastModified"><span class="hs-identifier hs-var hs-var">ffiLastModified</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span>
 </span><span id="line-87"></span><span>  </span><span class="hs-special">}</span><span>
-</span><span id="line-88"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074207"><span id="local-6989586621679074209"><span id="local-6989586621679074221"><span class="annot"><span class="annottext">Int -&gt; FFIMetadata -&gt; ShowS
+</span><span id="line-88"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074639"><span id="local-6989586621679074641"><span id="local-6989586621679074653"><span class="annot"><span class="annottext">Int -&gt; FFIMetadata -&gt; ShowS
 [FFIMetadata] -&gt; ShowS
 FFIMetadata -&gt; String
 forall a.
@@ -242,9 +242,9 @@ showsPrec :: Int -&gt; FFIMetadata -&gt; ShowS
 $cshowsPrec :: Int -&gt; FFIMetadata -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
 </span><span id="line-89"></span><span>
-</span><span id="line-90"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074197"><span id="local-6989586621679074199"><span id="local-6989586621679074201"><span id="local-6989586621679074203"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata">< [...]
-</span><span id="line-91"></span><span>  </span><span id="local-6989586621679074180"><span class="annot"><span class="annottext">sizeOf :: FFIMetadata -&gt; Int
-</span><a href="#local-6989586621679074180"><span class="hs-identifier hs-var hs-var hs-var hs-var">sizeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIMetadata
+</span><span id="line-90"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679074629"><span id="local-6989586621679074631"><span id="local-6989586621679074633"><span id="local-6989586621679074635"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Storable</span></a></span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata">< [...]
+</span><span id="line-91"></span><span>  </span><span id="local-6989586621679074612"><span class="annot"><span class="annottext">sizeOf :: FFIMetadata -&gt; Int
+</span><a href="#local-6989586621679074612"><span class="hs-identifier hs-var hs-var hs-var hs-var">sizeOf</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIMetadata
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="an [...]
@@ -256,54 +256,54 @@ $cshowsPrec :: Int -&gt; FFIMetadata -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CULong</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-92"></span><span>  </span><span id="local-6989586621679074175"><span class="annot"><span class="annottext">alignment :: FFIMetadata -&gt; Int
-</span><a href="#local-6989586621679074175"><span class="hs-identifier hs-var hs-var hs-var hs-var">alignment</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIMetadata
+</span><span id="line-92"></span><span>  </span><span id="local-6989586621679074607"><span class="annot"><span class="annottext">alignment :: FFIMetadata -&gt; Int
+</span><a href="#local-6989586621679074607"><span class="hs-identifier hs-var hs-var hs-var hs-var">alignment</span></a></span></span><span> </span><span class="annot"><span class="annottext">FFIMetadata
 </span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alignment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-93"></span><span>  </span><span id="local-6989586621679074157"><span class="annot"><span class="annottext">peek :: Ptr FFIMetadata -&gt; IO FFIMetadata
-</span><a href="#local-6989586621679074157"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074156"><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-94"></span><span>    </span><span id="local-6989586621679074155"><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074155"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><span id="line-93"></span><span>  </span><span id="local-6989586621679074589"><span class="annot"><span class="annottext">peek :: Ptr FFIMetadata -&gt; IO FFIMetadata
+</span><a href="#local-6989586621679074589"><span class="hs-identifier hs-var hs-var hs-var hs-var">peek</span></a></span></span><span> </span><span id="local-6989586621679074588"><span class="annot"><span class="annottext">Ptr FFIMetadata
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-94"></span><span>    </span><span id="local-6989586621679074587"><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074587"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074154"><span class="hs-identifier hs-var">modeOffset</span></a></span><span>
-</span><span id="line-95"></span><span>    </span><span id="local-6989586621679074153"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074153"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">modeOffset</span></a></span><span>
+</span><span id="line-95"></span><span>    </span><span id="local-6989586621679074585"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074152"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span>
-</span><span id="line-96"></span><span>    </span><span id="local-6989586621679074151"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074151"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074584"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span>
+</span><span id="line-96"></span><span>    </span><span id="local-6989586621679074583"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074583"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074150"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span>
-</span><span id="line-97"></span><span>    </span><span id="local-6989586621679074149"><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074149"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074582"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span>
+</span><span id="line-97"></span><span>    </span><span id="local-6989586621679074581"><span class="annot"><span class="annottext">CULong
+</span><a href="#local-6989586621679074581"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074148"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span>
-</span><span id="line-98"></span><span>    </span><span id="local-6989586621679074147"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074147"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074580"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span>
+</span><span id="line-98"></span><span>    </span><span id="local-6989586621679074579"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074579"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074146"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span>
-</span><span id="line-99"></span><span>    </span><span id="local-6989586621679074145"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074145"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074578"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span>
+</span><span id="line-99"></span><span>    </span><span id="local-6989586621679074577"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074577"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074144"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span>
-</span><span id="line-100"></span><span>    </span><span id="local-6989586621679074143"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074143"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074576"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span>
+</span><span id="line-100"></span><span>    </span><span id="local-6989586621679074575"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074575"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074142"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span>
-</span><span id="line-101"></span><span>    </span><span id="local-6989586621679074141"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074141"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074574"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span>
+</span><span id="line-101"></span><span>    </span><span id="local-6989586621679074573"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074573"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074156"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074140"><span class="hs-identifier hs-var">lastModifiedOffset</span></a></span><span>
+</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074572"><span class="hs-identifier hs-var">lastModifiedOffset</span></a></span><span>
 </span><span id="line-102"></span><span>    </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
@@ -316,154 +316,154 @@ $cshowsPrec :: Int -&gt; FFIMetadata -&gt; ShowS
 -&gt; CString
 -&gt; FFIMetadata
 </span><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-var">FFIMetadata</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074155"><span class="hs-identifier hs-var">mode</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074153"><span class="hs-identifier hs-var">cacheControl</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074151"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span> </span><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074149"><span class="hs-identifier hs-var">contentLength</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074147"><span class="hs-identifier hs-var">contentMD5</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074145"><span class="hs-identifier hs-var">contentType</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074143"><span class="hs-identifier hs-var">eTag</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074141"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
+</span><a href="#local-6989586621679074587"><span class="hs-identifier hs-var">mode</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">cacheControl</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074583"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span> </span><span class="annot"><span class="annottext">CULong
+</span><a href="#local-6989586621679074581"><span class="hs-identifier hs-var">contentLength</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074579"><span class="hs-identifier hs-var">contentMD5</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074577"><span class="hs-identifier hs-var">contentType</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074575"><span class="hs-identifier hs-var">eTag</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074573"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
 </span><span id="line-103"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-104"></span><span>      </span><span id="local-6989586621679074154"><span class="annot"><span class="annottext">modeOffset :: Int
-</span><a href="#local-6989586621679074154"><span class="hs-identifier hs-var hs-var">modeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-104"></span><span>      </span><span id="local-6989586621679074586"><span class="annot"><span class="annottext">modeOffset :: Int
+</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var hs-var">modeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-105"></span><span>      </span><span id="local-6989586621679074152"><span class="annot"><span class="annottext">cacheControlOffset :: Int
-</span><a href="#local-6989586621679074152"><span class="hs-identifier hs-var hs-var">cacheControlOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074154"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-105"></span><span>      </span><span id="local-6989586621679074584"><span class="annot"><span class="annottext">cacheControlOffset :: Int
+</span><a href="#local-6989586621679074584"><span class="hs-identifier hs-var hs-var">cacheControlOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-106"></span><span>      </span><span id="local-6989586621679074150"><span class="annot"><span class="annottext">contentDispositionOffset :: Int
-</span><a href="#local-6989586621679074150"><span class="hs-identifier hs-var hs-var">contentDispositionOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074152"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-106"></span><span>      </span><span id="local-6989586621679074582"><span class="annot"><span class="annottext">contentDispositionOffset :: Int
+</span><a href="#local-6989586621679074582"><span class="hs-identifier hs-var hs-var">contentDispositionOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074584"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-107"></span><span>      </span><span id="local-6989586621679074148"><span class="annot"><span class="annottext">contentLengthOffset :: Int
-</span><a href="#local-6989586621679074148"><span class="hs-identifier hs-var hs-var">contentLengthOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074150"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-107"></span><span>      </span><span id="local-6989586621679074580"><span class="annot"><span class="annottext">contentLengthOffset :: Int
+</span><a href="#local-6989586621679074580"><span class="hs-identifier hs-var hs-var">contentLengthOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074582"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-108"></span><span>      </span><span id="local-6989586621679074146"><span class="annot"><span class="annottext">contentMD5Offset :: Int
-</span><a href="#local-6989586621679074146"><span class="hs-identifier hs-var hs-var">contentMD5Offset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074148"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-108"></span><span>      </span><span id="local-6989586621679074578"><span class="annot"><span class="annottext">contentMD5Offset :: Int
+</span><a href="#local-6989586621679074578"><span class="hs-identifier hs-var hs-var">contentMD5Offset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074580"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CULong</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-109"></span><span>      </span><span id="local-6989586621679074144"><span class="annot"><span class="annottext">contentTypeOffset :: Int
-</span><a href="#local-6989586621679074144"><span class="hs-identifier hs-var hs-var">contentTypeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074146"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-109"></span><span>      </span><span id="local-6989586621679074576"><span class="annot"><span class="annottext">contentTypeOffset :: Int
+</span><a href="#local-6989586621679074576"><span class="hs-identifier hs-var hs-var">contentTypeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074578"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-110"></span><span>      </span><span id="local-6989586621679074142"><span class="annot"><span class="annottext">eTagOffset :: Int
-</span><a href="#local-6989586621679074142"><span class="hs-identifier hs-var hs-var">eTagOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074144"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-110"></span><span>      </span><span id="local-6989586621679074574"><span class="annot"><span class="annottext">eTagOffset :: Int
+</span><a href="#local-6989586621679074574"><span class="hs-identifier hs-var hs-var">eTagOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074576"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-111"></span><span>      </span><span id="local-6989586621679074140"><span class="annot"><span class="annottext">lastModifiedOffset :: Int
-</span><a href="#local-6989586621679074140"><span class="hs-identifier hs-var hs-var">lastModifiedOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074142"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-111"></span><span>      </span><span id="local-6989586621679074572"><span class="annot"><span class="annottext">lastModifiedOffset :: Int
+</span><a href="#local-6989586621679074572"><span class="hs-identifier hs-var hs-var">lastModifiedOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074574"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-112"></span><span>  </span><span id="local-6989586621679074095"><span class="annot"><span class="annottext">poke :: Ptr FFIMetadata -&gt; FFIMetadata -&gt; IO ()
-</span><a href="#local-6989586621679074095"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074094"><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-type">FFIMetadata</span></a></span><span> </span><span id="local-6989586621679074093"><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074093"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621679074092"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074092"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span id="local-6989586621679074091"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074091"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span id="local-6989586621679074090"><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074090"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span id="local-6989586621679074089"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074089"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span id="local-6989586621679074088"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074088"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span id="local-6989586621679074087"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074087"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span id="local-6989586621679074086"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074086"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-112"></span><span>  </span><span id="local-6989586621679074527"><span class="annot"><span class="annottext">poke :: Ptr FFIMetadata -&gt; FFIMetadata -&gt; IO ()
+</span><a href="#local-6989586621679074527"><span class="hs-identifier hs-var hs-var hs-var hs-var">poke</span></a></span></span><span> </span><span id="local-6989586621679074526"><span class="annot"><span class="annottext">Ptr FFIMetadata
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-type">FFIMetadata</span></a></span><span> </span><span id="local-6989586621679074525"><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074525"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621679074524"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span id="local-6989586621679074523"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074523"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span id="local-6989586621679074522"><span class="annot"><span class="annottext">CULong
+</span><a href="#local-6989586621679074522"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span id="local-6989586621679074521"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074521"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span id="local-6989586621679074520"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074520"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span id="local-6989586621679074519"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074519"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span id="local-6989586621679074518"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074518"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-113"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074085"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074093"><span class="hs-identifier hs-var">mode</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074517"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679074525"><span class="hs-identifier hs-var">mode</span></a></span><span>
 </span><span id="line-114"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074084"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074092"><span class="hs-identifier hs-var">cacheControl</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074516"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">cacheControl</span></a></span><span>
 </span><span id="line-115"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074083"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074091"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074515"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074523"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span>
 </span><span id="line-116"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074082"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074090"><span class="hs-identifier hs-var">contentLength</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074514"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CULong
+</span><a href="#local-6989586621679074522"><span class="hs-identifier hs-var">contentLength</span></a></span><span>
 </span><span id="line-117"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074081"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074089"><span class="hs-identifier hs-var">contentMD5</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074521"><span class="hs-identifier hs-var">contentMD5</span></a></span><span>
 </span><span id="line-118"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074080"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074088"><span class="hs-identifier hs-var">contentType</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074512"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074520"><span class="hs-identifier hs-var">contentType</span></a></span><span>
 </span><span id="line-119"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074079"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074087"><span class="hs-identifier hs-var">eTag</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074519"><span class="hs-identifier hs-var">eTag</span></a></span><span>
 </span><span id="line-120"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Ptr b -&gt; Int -&gt; a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeByteOff</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr FFIMetadata
-</span><a href="#local-6989586621679074094"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074078"><span class="hs-identifier hs-var">lastModifiedOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074086"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
+</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ptr</span></a></span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074510"><span class="hs-identifier hs-var">lastModifiedOffset</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074518"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
 </span><span id="line-121"></span><span>    </span><span class="hs-keyword">where</span><span>
-</span><span id="line-122"></span><span>      </span><span id="local-6989586621679074085"><span class="annot"><span class="annottext">modeOffset :: Int
-</span><a href="#local-6989586621679074085"><span class="hs-identifier hs-var hs-var">modeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><span id="line-122"></span><span>      </span><span id="local-6989586621679074517"><span class="annot"><span class="annottext">modeOffset :: Int
+</span><a href="#local-6989586621679074517"><span class="hs-identifier hs-var hs-var">modeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
 </span><span class="hs-number">0</span></span><span>
-</span><span id="line-123"></span><span>      </span><span id="local-6989586621679074084"><span class="annot"><span class="annottext">cacheControlOffset :: Int
-</span><a href="#local-6989586621679074084"><span class="hs-identifier hs-var hs-var">cacheControlOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074085"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-123"></span><span>      </span><span id="local-6989586621679074516"><span class="annot"><span class="annottext">cacheControlOffset :: Int
+</span><a href="#local-6989586621679074516"><span class="hs-identifier hs-var hs-var">cacheControlOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074517"><span class="hs-identifier hs-var">modeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CSize</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-124"></span><span>      </span><span id="local-6989586621679074083"><span class="annot"><span class="annottext">contentDispositionOffset :: Int
-</span><a href="#local-6989586621679074083"><span class="hs-identifier hs-var hs-var">contentDispositionOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074084"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-124"></span><span>      </span><span id="local-6989586621679074515"><span class="annot"><span class="annottext">contentDispositionOffset :: Int
+</span><a href="#local-6989586621679074515"><span class="hs-identifier hs-var hs-var">contentDispositionOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074516"><span class="hs-identifier hs-var">cacheControlOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-125"></span><span>      </span><span id="local-6989586621679074082"><span class="annot"><span class="annottext">contentLengthOffset :: Int
-</span><a href="#local-6989586621679074082"><span class="hs-identifier hs-var hs-var">contentLengthOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074083"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-125"></span><span>      </span><span id="local-6989586621679074514"><span class="annot"><span class="annottext">contentLengthOffset :: Int
+</span><a href="#local-6989586621679074514"><span class="hs-identifier hs-var hs-var">contentLengthOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074515"><span class="hs-identifier hs-var">contentDispositionOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-126"></span><span>      </span><span id="local-6989586621679074081"><span class="annot"><span class="annottext">contentMD5Offset :: Int
-</span><a href="#local-6989586621679074081"><span class="hs-identifier hs-var hs-var">contentMD5Offset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074082"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-126"></span><span>      </span><span id="local-6989586621679074513"><span class="annot"><span class="annottext">contentMD5Offset :: Int
+</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var hs-var">contentMD5Offset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074514"><span class="hs-identifier hs-var">contentLengthOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CULong</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-127"></span><span>      </span><span id="local-6989586621679074080"><span class="annot"><span class="annottext">contentTypeOffset :: Int
-</span><a href="#local-6989586621679074080"><span class="hs-identifier hs-var hs-var">contentTypeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074081"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-127"></span><span>      </span><span id="local-6989586621679074512"><span class="annot"><span class="annottext">contentTypeOffset :: Int
+</span><a href="#local-6989586621679074512"><span class="hs-identifier hs-var hs-var">contentTypeOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var">contentMD5Offset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-128"></span><span>      </span><span id="local-6989586621679074079"><span class="annot"><span class="annottext">eTagOffset :: Int
-</span><a href="#local-6989586621679074079"><span class="hs-identifier hs-var hs-var">eTagOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074080"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-128"></span><span>      </span><span id="local-6989586621679074511"><span class="annot"><span class="annottext">eTagOffset :: Int
+</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var hs-var">eTagOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074512"><span class="hs-identifier hs-var">contentTypeOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
-</span><span id="line-129"></span><span>      </span><span id="local-6989586621679074078"><span class="annot"><span class="annottext">lastModifiedOffset :: Int
-</span><a href="#local-6989586621679074078"><span class="hs-identifier hs-var hs-var">lastModifiedOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074079"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
+</span><span id="line-129"></span><span>      </span><span id="local-6989586621679074510"><span class="annot"><span class="annottext">lastModifiedOffset :: Int
+</span><a href="#local-6989586621679074510"><span class="hs-identifier hs-var hs-var">lastModifiedOffset</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">eTagOffset</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Num a =&gt; a -&gt; a -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">+</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">sizeOf</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. HasCallStack =&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">undefined</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span class="hs-special">)</span><span>
diff --git a/docs/haskell/src/OpenDAL.html b/docs/haskell/src/OpenDAL.html
index 32267415cb..5f6969ac35 100644
--- a/docs/haskell/src/OpenDAL.html
+++ b/docs/haskell/src/OpenDAL.html
@@ -61,14 +61,14 @@
 </span><span id="line-61"></span><span>  </span><span class="hs-special">)</span><span>
 </span><span id="line-62"></span><span class="hs-keyword">where</span><span>
 </span><span id="line-63"></span><span>
-</span><span id="line-64"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-0.6.1.0-fca10d8f94927606a092f52fb9cc1c019e1c52b7ad9bb7a36d98b041a64e77c1/share/doc/html/src"><span class="hs-identifier">Colog</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-core-0.3.2.1-74a2622cd1b0947afed7dc65ccc21d634f00392 [...]
+</span><span id="line-64"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-0.6.1.0-3edca4cdb1b1c405f9f11a831bb425acedf06e7e8696ae19282066377b987559/share/doc/html/src"><span class="hs-identifier">Colog</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-core-0.3.2.1-74a2622cd1b0947afed7dc65ccc21d634f00392 [...]
 </span><span id="line-65"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier">Control.Monad.Except</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier">ExceptT</span></a></s [...]
 </span><span id="line-66"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier">Control.Monad.Reader</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier">MonadIO</span></a></span><sp [...]
 </span><span id="line-67"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier">Control.Monad.Trans</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier">MonadTrans</span></a>< [...]
 </span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bytestring-0.11.4.0/src"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bytestring-0.11.4.0/src"><span class="hs-identifier">ByteString</span> [...]
 </span><span id="line-69"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bytestring-0.11.4.0/src"><span class="hs-identifier">Data.ByteString</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-identifier">BS</span></span><span>
-</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4e8b7261a186fd4e84f1c0dcf660056808dc4a060e970122b8f0258ce61ca/share/doc/html/src"><span class="hs-identifier">Data.HashMap.Strict</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4 [...]
-</span><span id="line-71"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4e8b7261a186fd4e84f1c0dcf660056808dc4a060e970122b8f0258ce61ca/share/doc/html/src"><span class="hs-identifier">Data.HashMap.Strict</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-i [...]
+</span><span id="line-70"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2beab32e369737342465f60d4410b5e9784d9c17c0bd93c2f83583a471504e5b/share/doc/html/src"><span class="hs-identifier">Data.HashMap.Strict</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2bea [...]
+</span><span id="line-71"></span><span class="hs-keyword">import</span><span> </span><span class="hs-keyword">qualified</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2beab32e369737342465f60d4410b5e9784d9c17c0bd93c2f83583a471504e5b/share/doc/html/src"><span class="hs-identifier">Data.HashMap.Strict</span></a></span><span> </span><span class="hs-keyword">as</span><span> </span><span class="annot"><span class="hs-i [...]
 </span><span id="line-72"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier">Data.String</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier">IsString</span></a></span><span>  [...]
 </span><span id="line-73"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/text-1.2.5.0/src"><span class="hs-identifier">Data.Text</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/text-1.2.5.0/src"><span class="hs-identifier">pack</span></a></span><span class="hs [...]
 </span><span id="line-74"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/time-1.11.1.1/src"><span class="hs-identifier">Data.Time</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/time-1.11.1.1/src"><span class="hs-identifier">UTCTime</span></a></span><span clas [...]
@@ -106,22 +106,22 @@
 </span><a href="OpenDAL.html#ocScheme"><span class="hs-identifier hs-var hs-var">ocScheme</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-106"></span><span>    </span><span class="hs-comment">-- | The config for the operator services. For example, &quot;endpoint&quot; and &quot;access_key_id&quot; for s3. The config is same as rust core.</span><span>
 </span><span id="line-107"></span><span>    </span><span id="ocConfig"><span class="annot"><span class="annottext">OperatorConfig -&gt; HashMap String String
-</span><a href="OpenDAL.html#ocConfig"><span class="hs-identifier hs-var hs-var">ocConfig</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4e8b7261a186fd4e84f1c0dcf660056808dc4a060e970122b8f0258ce61ca/share/doc/html/src"><span class="hs-identifier hs-type">HashMap</span></a></span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcu [...]
+</span><a href="OpenDAL.html#ocConfig"><span class="hs-identifier hs-var hs-var">ocConfig</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2beab32e369737342465f60d4410b5e9784d9c17c0bd93c2f83583a471504e5b/share/doc/html/src"><span class="hs-identifier hs-type">HashMap</span></a></span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcu [...]
 </span><span id="line-108"></span><span>    </span><span class="hs-comment">-- | The log action for the operator. If it's `Nothing`, the operator won't enable logging.</span><span>
 </span><span id="line-109"></span><span>    </span><span id="ocLogAction"><span class="annot"><span class="annottext">OperatorConfig -&gt; Maybe (LogAction IO Message)
-</span><a href="OpenDAL.html#ocLogAction"><span class="hs-identifier hs-var hs-var">ocLogAction</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-cor [...]
+</span><a href="OpenDAL.html#ocLogAction"><span class="hs-identifier hs-var hs-var">ocLogAction</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-cor [...]
 </span><span id="line-110"></span><span>  </span><span class="hs-special">}</span><span>
 </span><span id="line-111"></span><span>
 </span><span id="line-112"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">IsString</span></a></span><span> </span><span class="annot"><a href="OpenDAL.html#OperatorConfig"><span class="hs-identifier hs-type">OperatorConfig</span></a></span><span> </span><span class="hs-keyword">where</span><span>
-</span><span id="line-113"></span><span>  </span><span id="local-6989586621679075064"><span class="annot"><span class="annottext">fromString :: String -&gt; OperatorConfig
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">fromString</span></a></span></span><span> </span><span id="local-6989586621679075063"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679075063"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
+</span><span id="line-113"></span><span>  </span><span id="local-6989586621679075496"><span class="annot"><span class="annottext">fromString :: String -&gt; OperatorConfig
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var">fromString</span></a></span></span><span> </span><span id="local-6989586621679075495"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075495"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">String
 -&gt; HashMap String String
 -&gt; Maybe (LogAction IO Message)
 -&gt; OperatorConfig
 </span><a href="OpenDAL.html#OperatorConfig"><span class="hs-identifier hs-var">OperatorConfig</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679075063"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">forall k v. HashMap k v
-</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4e8b7261a186fd4e84f1c0dcf660056808dc4a060e970122b8f0258ce61ca/share/doc/html/src"><span class="hs-identifier hs-var">HashMap.empty</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Maybe a
+</span><a href="#local-6989586621679075495"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">forall k v. HashMap k v
+</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2beab32e369737342465f60d4410b5e9784d9c17c0bd93c2f83583a471504e5b/share/doc/html/src"><span class="hs-identifier hs-var">HashMap.empty</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Maybe a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
 </span><span id="line-114"></span><span>
 </span><span id="line-115"></span><span class="hs-comment">-- | `Operator` is the entry for all public blocking APIs.</span><span>
@@ -156,13 +156,13 @@
 </span><span id="line-144"></span><span>    </span><span id="RateLimited"><span class="annot"><a href="OpenDAL.html#RateLimited"><span class="hs-identifier hs-var">RateLimited</span></a></span></span><span>
 </span><span id="line-145"></span><span>  </span><span class="hs-glyph">|</span><span> </span><span class="hs-comment">-- | The given file paths are same.</span><span>
 </span><span id="line-146"></span><span>    </span><span id="IsSameFile"><span class="annot"><a href="OpenDAL.html#IsSameFile"><span class="hs-identifier hs-var">IsSameFile</span></a></span></span><span>
-</span><span id="line-147"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075045"><span id="local-6989586621679075047"><span class="annot"><span class="annottext">ErrorCode -&gt; ErrorCode -&gt; Bool
+</span><span id="line-147"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075477"><span id="local-6989586621679075479"><span class="annot"><span class="annottext">ErrorCode -&gt; ErrorCode -&gt; Bool
 forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
 /= :: ErrorCode -&gt; ErrorCode -&gt; Bool
 $c/= :: ErrorCode -&gt; ErrorCode -&gt; Bool
 == :: ErrorCode -&gt; ErrorCode -&gt; Bool
 $c== :: ErrorCode -&gt; ErrorCode -&gt; Bool
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075038"><span id="local-6989586621679075040"><span id="local-6989586621679075042"><span class="annot"><span class="annottext">Int -&gt; ErrorCode -&gt; ShowS
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075470"><span id="local-6989586621679075472"><span id="local-6989586621679075474"><span class="annot"><span class="annottext">Int -&gt; ErrorCode -&gt; ShowS
 [ErrorCode] -&gt; ShowS
 ErrorCode -&gt; String
 forall a.
@@ -184,13 +184,13 @@ $cshowsPrec :: Int -&gt; ErrorCode -&gt; ShowS
 </span><span id="line-154"></span><span>    </span><span id="message"><span class="annot"><span class="annottext">OpenDALError -&gt; String
 </span><a href="OpenDAL.html#message"><span class="hs-identifier hs-var hs-var">message</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span>
 </span><span id="line-155"></span><span>  </span><span class="hs-special">}</span><span>
-</span><span id="line-156"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075026"><span id="local-6989586621679075032"><span class="annot"><span class="annottext">OpenDALError -&gt; OpenDALError -&gt; Bool
+</span><span id="line-156"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075458"><span id="local-6989586621679075464"><span class="annot"><span class="annottext">OpenDALError -&gt; OpenDALError -&gt; Bool
 forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
 /= :: OpenDALError -&gt; OpenDALError -&gt; Bool
 $c/= :: OpenDALError -&gt; OpenDALError -&gt; Bool
 == :: OpenDALError -&gt; OpenDALError -&gt; Bool
 $c== :: OpenDALError -&gt; OpenDALError -&gt; Bool
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075013"><span id="local-6989586621679075015"><span id="local-6989586621679075023"><span class="annot"><span class="annottext">Int -&gt; OpenDALError -&gt; ShowS
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075445"><span id="local-6989586621679075447"><span id="local-6989586621679075455"><span class="annot"><span class="annottext">Int -&gt; OpenDALError -&gt; ShowS
 [OpenDALError] -&gt; ShowS
 OpenDALError -&gt; String
 forall a.
@@ -204,13 +204,13 @@ $cshowsPrec :: Int -&gt; OpenDALError -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
 </span><span id="line-157"></span><span>
 </span><span id="line-158"></span><span class="hs-comment">-- | Represents the mode of an entry in a storage system (e.g., file or directory).</span><span>
-</span><span id="line-159"></span><span class="hs-keyword">data</span><span> </span><span id="EntryMode"><span class="annot"><a href="OpenDAL.html#EntryMode"><span class="hs-identifier hs-var">EntryMode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="File"><span class="annot"><a href="OpenDAL.html#File"><span class="hs-identifier hs-var">File</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="Dir"><spa [...]
+</span><span id="line-159"></span><span class="hs-keyword">data</span><span> </span><span id="EntryMode"><span class="annot"><a href="OpenDAL.html#EntryMode"><span class="hs-identifier hs-var">EntryMode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="File"><span class="annot"><a href="OpenDAL.html#File"><span class="hs-identifier hs-var">File</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span id="Dir"><spa [...]
 forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
 /= :: EntryMode -&gt; EntryMode -&gt; Bool
 $c/= :: EntryMode -&gt; EntryMode -&gt; Bool
 == :: EntryMode -&gt; EntryMode -&gt; Bool
 $c== :: EntryMode -&gt; EntryMode -&gt; Bool
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074999"><span id="local-6989586621679075001"><span id="local-6989586621679075003"><span class="annot"><span class="annottext">Int -&gt; EntryMode -&gt; ShowS
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075431"><span id="local-6989586621679075433"><span id="local-6989586621679075435"><span class="annot"><span class="annottext">Int -&gt; EntryMode -&gt; ShowS
 [EntryMode] -&gt; ShowS
 EntryMode -&gt; String
 forall a.
@@ -250,13 +250,13 @@ $cshowsPrec :: Int -&gt; EntryMode -&gt; ShowS
 </span><span id="line-178"></span><span>    </span><span id="mLastModified"><span class="annot"><span class="annottext">Metadata -&gt; Maybe UTCTime
 </span><a href="OpenDAL.html#mLastModified"><span class="hs-identifier hs-var hs-var">mLastModified</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/time-1.11.1. [...]
 </span><span id="line-179"></span><span>  </span><span class="hs-special">}</span><span>
-</span><span id="line-180"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074974"><span id="local-6989586621679074988"><span class="annot"><span class="annottext">Metadata -&gt; Metadata -&gt; Bool
+</span><span id="line-180"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075406"><span id="local-6989586621679075420"><span class="annot"><span class="annottext">Metadata -&gt; Metadata -&gt; Bool
 forall a. (a -&gt; a -&gt; Bool) -&gt; (a -&gt; a -&gt; Bool) -&gt; Eq a
 /= :: Metadata -&gt; Metadata -&gt; Bool
 $c/= :: Metadata -&gt; Metadata -&gt; Bool
 == :: Metadata -&gt; Metadata -&gt; Bool
 $c== :: Metadata -&gt; Metadata -&gt; Bool
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074953"><span id="local-6989586621679074955"><span id="local-6989586621679074970"><span class="annot"><span class="annottext">Int -&gt; Metadata -&gt; ShowS
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Eq</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075385"><span id="local-6989586621679075387"><span id="local-6989586621679075402"><span class="annot"><span class="annottext">Int -&gt; Metadata -&gt; ShowS
 [Metadata] -&gt; ShowS
 Metadata -&gt; String
 forall a.
@@ -270,11 +270,11 @@ $cshowsPrec :: Int -&gt; Metadata -&gt; ShowS
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Show</span></a></span></span></span></span><span class="hs-special">)</span><span>
 </span><span id="line-181"></span><span>
 </span><span id="line-182"></span><span class="hs-comment">-- | @newtype@ wrapper 'ReaderT' that keeps 'Operator' in its context.</span><span>
-</span><span id="line-183"></span><span class="hs-keyword">newtype</span><span> </span><span id="OperatorT"><span class="annot"><a href="OpenDAL.html#OperatorT"><span class="hs-identifier hs-var">OperatorT</span></a></span></span><span> </span><span id="local-6989586621679075512"><span class="annot"><a href="#local-6989586621679075512"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span id="local-6989586621679075511"><span class="annot"><a href="#local-69895 [...]
+</span><span id="line-183"></span><span class="hs-keyword">newtype</span><span> </span><span id="OperatorT"><span class="annot"><a href="OpenDAL.html#OperatorT"><span class="hs-identifier hs-var">OperatorT</span></a></span></span><span> </span><span id="local-6989586621679075944"><span class="annot"><a href="#local-6989586621679075944"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span id="local-6989586621679075943"><span class="annot"><a href="#local-69895 [...]
 </span><span id="line-184"></span><span>  </span><span class="hs-special">{</span><span id="runOperatorT"><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a.
 OperatorT m a -&gt; ReaderT Operator (ExceptT OpenDALError m) a
-</span><a href="OpenDAL.html#runOperatorT"><span class="hs-identifier hs-var hs-var">runOperatorT</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-type">ReaderT</span></a></span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a> [...]
-</span><span id="line-185"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="annot"><span class="hs-keyword">newtype</span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679074940"><span id="local-6989586621679074946"><span class="annot"><span class="annottext">forall a b. a -&gt; OperatorT m b -&gt; OperatorT m a
+</span><a href="OpenDAL.html#runOperatorT"><span class="hs-identifier hs-var hs-var">runOperatorT</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-type">ReaderT</span></a></span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a> [...]
+</span><span id="line-185"></span><span>  </span><span class="hs-keyword">deriving</span><span> </span><span class="annot"><span class="hs-keyword">newtype</span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679075372"><span id="local-6989586621679075378"><span class="annot"><span class="annottext">forall a b. a -&gt; OperatorT m b -&gt; OperatorT m a
 forall a b. (a -&gt; b) -&gt; OperatorT m a -&gt; OperatorT m b
 forall (m :: * -&gt; *) a b.
 Functor m =&gt;
@@ -293,7 +293,7 @@ fmap :: forall a b. (a -&gt; b) -&gt; OperatorT m a -&gt; OperatorT m b
 $cfmap :: forall (m :: * -&gt; *) a b.
 Functor m =&gt;
 (a -&gt; b) -&gt; OperatorT m a -&gt; OperatorT m b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074907"><span id="local-6989586621679074912"><span id="local-6989586621679074917"><span id="local-6989586621679074922"><span id="local-6989586621679074928"><span class="annot"><span class="annottext" [...]
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var">Functor</span></a></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075339"><span id="local-6989586621679075344"><span id="local-6989586621679075349"><span id="local-6989586621679075354"><span id="local-6989586621679075360"><span class="annot"><span class="annottext" [...]
 forall a b. OperatorT m a -&gt; OperatorT m b -&gt; OperatorT m a
 forall a b. OperatorT m a -&gt; OperatorT m b -&gt; OperatorT m b
 forall a b. OperatorT m (a -&gt; b) -&gt; OperatorT m a -&gt; OperatorT m b
@@ -340,7 +340,7 @@ Monad m =&gt;
 OperatorT m (a -&gt; b) -&gt; OperatorT m a -&gt; OperatorT m b
 pure :: forall a. a -&gt; OperatorT m a
 $cpure :: forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; OperatorT m a
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Applicative</span></a></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074882"><span id="local-6989586621679074887"><span id="local-6989586621679074893"><span class="annot"><span class="annottext" [...]
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Applicative</span></a></span></span></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075314"><span id="local-6989586621679075319"><span id="local-6989586621679075325"><span class="annot"><span class="annottext" [...]
 forall a b. OperatorT m a -&gt; OperatorT m b -&gt; OperatorT m b
 forall a b. OperatorT m a -&gt; (a -&gt; OperatorT m b) -&gt; OperatorT m b
 forall (m :: * -&gt; *). Monad m =&gt; Applicative (OperatorT m)
@@ -367,18 +367,18 @@ OperatorT m a -&gt; OperatorT m b -&gt; OperatorT m b
 $c&gt;&gt;= :: forall (m :: * -&gt; *) a b.
 Monad m =&gt;
 OperatorT m a -&gt; (a -&gt; OperatorT m b) -&gt; OperatorT m b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Monad</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074870"><span class="annot"><span class="annottext">forall a. IO a -&gt; OperatorT m a
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var hs-var">Monad</span></a></span></span></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075302"><span class="annot"><span class="annottext">forall a. IO a -&gt; OperatorT m a
 forall (m :: * -&gt; *).
 Monad m -&gt; (forall a. IO a -&gt; m a) -&gt; MonadIO m
 forall {m :: * -&gt; *}. MonadIO m =&gt; Monad (OperatorT m)
 forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; OperatorT m a
 liftIO :: forall a. IO a -&gt; OperatorT m a
 $cliftIO :: forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; OperatorT m a
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadIO</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074846"><span id="local-6989586621679074851"><span id="local-6989586621679074857"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="h [...]
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var hs-var hs-var hs-var hs-var">MonadIO</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075278"><span id="local-6989586621679075283"><span id="local-6989586621679075289"><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="h [...]
 </span><span id="line-186"></span><span>
 </span><span id="line-187"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-type">MonadTrans</span></a></span><span> </span><span class="annot"><a href="OpenDAL.html#OperatorT"><span class="hs-identifier hs-type">OperatorT</span></a></span><span> </span><span class="hs-keyword">where</span><span>
-</span><span id="line-188"></span><span>  </span><span id="local-6989586621679074813"><span class="annot"><span class="annottext">lift :: forall (m :: * -&gt; *) a. Monad m =&gt; m a -&gt; OperatorT m a
-</span><a href="#local-6989586621679074813"><span class="hs-identifier hs-var hs-var hs-var hs-var">lift</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a.
+</span><span id="line-188"></span><span>  </span><span id="local-6989586621679075245"><span class="annot"><span class="annottext">lift :: forall (m :: * -&gt; *) a. Monad m =&gt; m a -&gt; OperatorT m a
+</span><a href="#local-6989586621679075245"><span class="hs-identifier hs-var hs-var hs-var hs-var">lift</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a.
 ReaderT Operator (ExceptT OpenDALError m) a -&gt; OperatorT m a
 </span><a href="OpenDAL.html#OperatorT"><span class="hs-identifier hs-var">OperatorT</span></a></span><span> </span><span class="annot"><span class="annottext">forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">forall (t :: (* -&gt; *) -&gt; * -&gt; *) (m :: * -&gt; *) a.
@@ -391,240 +391,240 @@ m a -&gt; t m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-var">lift</span></a></span><span>
 </span><span id="line-189"></span><span>
 </span><span id="line-190"></span><span class="hs-comment">-- | A type class for monads that can perform OpenDAL operations.</span><span>
-</span><span id="line-191"></span><span class="hs-keyword">class</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679075405"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph [...]
+</span><span id="line-191"></span><span class="hs-keyword">class</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679075837"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph [...]
 </span><span id="line-192"></span><span>  </span><span class="hs-comment">-- | Read the whole path into a bytes.</span><span>
-</span><span id="line-193"></span><span>  </span><span id="readOp"><span class="annot"><a href="OpenDAL.html#readOp"><span class="hs-identifier hs-type">readOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
+</span><span id="line-193"></span><span>  </span><span id="readOp"><span class="annot"><a href="OpenDAL.html#readOp"><span class="hs-identifier hs-type">readOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
 </span><span id="line-194"></span><span>
 </span><span id="line-195"></span><span>  </span><span class="hs-comment">-- | Write bytes into given path.</span><span>
-</span><span id="line-196"></span><span>  </span><span id="writeOp"><span class="annot"><a href="OpenDAL.html#writeOp"><span class="hs-identifier hs-type">writeOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span>< [...]
+</span><span id="line-196"></span><span>  </span><span id="writeOp"><span class="annot"><a href="OpenDAL.html#writeOp"><span class="hs-identifier hs-type">writeOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span>< [...]
 </span><span id="line-197"></span><span>
 </span><span id="line-198"></span><span>  </span><span class="hs-comment">-- | Check if this path exists or not.</span><span>
-</span><span id="line-199"></span><span>  </span><span id="isExistOp"><span class="annot"><a href="OpenDAL.html#isExistOp"><span class="hs-identifier hs-type">isExistOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </ [...]
+</span><span id="line-199"></span><span>  </span><span id="isExistOp"><span class="annot"><a href="OpenDAL.html#isExistOp"><span class="hs-identifier hs-type">isExistOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </ [...]
 </span><span id="line-200"></span><span>
 </span><span id="line-201"></span><span>  </span><span class="hs-comment">-- | Create a dir at given path.</span><span>
-</span><span id="line-202"></span><span>  </span><span id="createDirOp"><span class="annot"><a href="OpenDAL.html#createDirOp"><span class="hs-identifier hs-type">createDirOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><sp [...]
+</span><span id="line-202"></span><span>  </span><span id="createDirOp"><span class="annot"><a href="OpenDAL.html#createDirOp"><span class="hs-identifier hs-type">createDirOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><sp [...]
 </span><span id="line-203"></span><span>
 </span><span id="line-204"></span><span>  </span><span class="hs-comment">-- | Copy a file from srcPath to dstPath.</span><span>
-</span><span id="line-205"></span><span>  </span><span id="copyOp"><span class="annot"><a href="OpenDAL.html#copyOp"><span class="hs-identifier hs-type">copyOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
+</span><span id="line-205"></span><span>  </span><span id="copyOp"><span class="annot"><a href="OpenDAL.html#copyOp"><span class="hs-identifier hs-type">copyOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
 </span><span id="line-206"></span><span>
 </span><span id="line-207"></span><span>  </span><span class="hs-comment">-- | Rename a file from srcPath to dstPath.</span><span>
-</span><span id="line-208"></span><span>  </span><span id="renameOp"><span class="annot"><a href="OpenDAL.html#renameOp"><span class="hs-identifier hs-type">renameOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </spa [...]
+</span><span id="line-208"></span><span>  </span><span id="renameOp"><span class="annot"><a href="OpenDAL.html#renameOp"><span class="hs-identifier hs-type">renameOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </spa [...]
 </span><span id="line-209"></span><span>
 </span><span id="line-210"></span><span>  </span><span class="hs-comment">-- | Delete given path.</span><span>
-</span><span id="line-211"></span><span>  </span><span id="deleteOp"><span class="annot"><a href="OpenDAL.html#deleteOp"><span class="hs-identifier hs-type">deleteOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </spa [...]
+</span><span id="line-211"></span><span>  </span><span id="deleteOp"><span class="annot"><a href="OpenDAL.html#deleteOp"><span class="hs-identifier hs-type">deleteOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </spa [...]
 </span><span id="line-212"></span><span>
 </span><span id="line-213"></span><span>  </span><span class="hs-comment">-- | Get given path&#8217;s metadata without cache directly.</span><span>
-</span><span id="line-214"></span><span>  </span><span id="statOp"><span class="annot"><a href="OpenDAL.html#statOp"><span class="hs-identifier hs-type">statOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
+</span><span id="line-214"></span><span>  </span><span id="statOp"><span class="annot"><a href="OpenDAL.html#statOp"><span class="hs-identifier hs-type">statOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
 </span><span id="line-215"></span><span>
 </span><span id="line-216"></span><span>  </span><span class="hs-comment">-- | List current dir path.</span><span>
 </span><span id="line-217"></span><span>  </span><span class="hs-comment">-- This function will create a new handle to list entries.</span><span>
 </span><span id="line-218"></span><span>  </span><span class="hs-comment">-- An error will be returned if path doesn&#8217;t end with /.</span><span>
-</span><span id="line-219"></span><span>  </span><span id="listOp"><span class="annot"><a href="OpenDAL.html#listOp"><span class="hs-identifier hs-type">listOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
+</span><span id="line-219"></span><span>  </span><span id="listOp"><span class="annot"><a href="OpenDAL.html#listOp"><span class="hs-identifier hs-type">listOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
 </span><span id="line-220"></span><span>
 </span><span id="line-221"></span><span>  </span><span class="hs-comment">-- | List dir in flat way.</span><span>
 </span><span id="line-222"></span><span>  </span><span class="hs-comment">-- Also, this function can be used to list a prefix.</span><span>
 </span><span id="line-223"></span><span>  </span><span class="hs-comment">-- An error will be returned if given path doesn&#8217;t end with /.</span><span>
-</span><span id="line-224"></span><span>  </span><span id="scanOp"><span class="annot"><a href="OpenDAL.html#scanOp"><span class="hs-identifier hs-type">scanOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
+</span><span id="line-224"></span><span>  </span><span id="scanOp"><span class="annot"><a href="OpenDAL.html#scanOp"><span class="hs-identifier hs-type">scanOp</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><spa [...]
 </span><span id="line-225"></span><span>
-</span><span id="line-226"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679075400"><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679075400"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">) [...]
-</span><span id="line-227"></span><span>  </span><span id="local-6989586621679074778"><span class="annot"><span class="annottext">readOp :: String -&gt; OperatorT m ByteString
-</span><a href="#local-6989586621679074778"><span class="hs-identifier hs-var hs-var hs-var hs-var">readOp</span></a></span></span><span> </span><span id="local-6989586621679074777"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074777"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-228"></span><span>    </span><span id="local-6989586621679074776"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074776"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><span id="line-226"></span><span class="hs-keyword">instance</span><span> </span><span id="local-6989586621679075832"><span class="hs-special">(</span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679075832"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">) [...]
+</span><span id="line-227"></span><span>  </span><span id="local-6989586621679075210"><span class="annot"><span class="annottext">readOp :: String -&gt; OperatorT m ByteString
+</span><a href="#local-6989586621679075210"><span class="hs-identifier hs-var hs-var hs-var hs-var">readOp</span></a></span></span><span> </span><span id="local-6989586621679075209"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075209"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-228"></span><span>    </span><span id="local-6989586621679075208"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075208"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-229"></span><span>    </span><span id="local-6989586621679074775"><span class="annot"><span class="annottext">Either OpenDALError ByteString
-</span><a href="#local-6989586621679074775"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-229"></span><span>    </span><span id="local-6989586621679075207"><span class="annot"><span class="annottext">Either OpenDALError ByteString
+</span><a href="#local-6989586621679075207"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError ByteString)
 </span><a href="OpenDAL.html#readOpRaw"><span class="hs-identifier hs-var">readOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074776"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074777"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075208"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075209"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-230"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ByteString
-</span><a href="#local-6989586621679074775"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-231"></span><span>  </span><span id="local-6989586621679074767"><span class="annot"><span class="annottext">writeOp :: String -&gt; ByteString -&gt; OperatorT m ()
-</span><a href="#local-6989586621679074767"><span class="hs-identifier hs-var hs-var hs-var hs-var">writeOp</span></a></span></span><span> </span><span id="local-6989586621679074766"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074766"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span id="local-6989586621679074765"><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074765"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-232"></span><span>    </span><span id="local-6989586621679074764"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074764"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075207"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-231"></span><span>  </span><span id="local-6989586621679075199"><span class="annot"><span class="annottext">writeOp :: String -&gt; ByteString -&gt; OperatorT m ()
+</span><a href="#local-6989586621679075199"><span class="hs-identifier hs-var hs-var hs-var hs-var">writeOp</span></a></span></span><span> </span><span id="local-6989586621679075198"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075198"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span id="local-6989586621679075197"><span class="annot"><span class="annottext">ByteString
+</span><a href="#local-6989586621679075197"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-232"></span><span>    </span><span id="local-6989586621679075196"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075196"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-233"></span><span>    </span><span id="local-6989586621679074763"><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074763"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-233"></span><span>    </span><span id="local-6989586621679075195"><span class="annot"><span class="annottext">Either OpenDALError ()
+</span><a href="#local-6989586621679075195"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; ByteString -&gt; IO (Either OpenDALError ())
 </span><a href="OpenDAL.html#writeOpRaw"><span class="hs-identifier hs-var">writeOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074764"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074766"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074765"><span class="hs-identifier hs-var">byte</span></a></span><span>
+</span><a href="#local-6989586621679075196"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075198"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
+</span><a href="#local-6989586621679075197"><span class="hs-identifier hs-var">byte</span></a></span><span>
 </span><span id="line-234"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074763"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-235"></span><span>  </span><span id="local-6989586621679074756"><span class="annot"><span class="annottext">isExistOp :: String -&gt; OperatorT m Bool
-</span><a href="#local-6989586621679074756"><span class="hs-identifier hs-var hs-var hs-var hs-var">isExistOp</span></a></span></span><span> </span><span id="local-6989586621679074755"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074755"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-236"></span><span>    </span><span id="local-6989586621679074754"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074754"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075195"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-235"></span><span>  </span><span id="local-6989586621679075188"><span class="annot"><span class="annottext">isExistOp :: String -&gt; OperatorT m Bool
+</span><a href="#local-6989586621679075188"><span class="hs-identifier hs-var hs-var hs-var hs-var">isExistOp</span></a></span></span><span> </span><span id="local-6989586621679075187"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075187"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-236"></span><span>    </span><span id="local-6989586621679075186"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075186"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-237"></span><span>    </span><span id="local-6989586621679074753"><span class="annot"><span class="annottext">Either OpenDALError Bool
-</span><a href="#local-6989586621679074753"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-237"></span><span>    </span><span id="local-6989586621679075185"><span class="annot"><span class="annottext">Either OpenDALError Bool
+</span><a href="#local-6989586621679075185"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError Bool)
 </span><a href="OpenDAL.html#isExistOpRaw"><span class="hs-identifier hs-var">isExistOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074754"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074755"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075186"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075187"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-238"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError Bool
-</span><a href="#local-6989586621679074753"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-239"></span><span>  </span><span id="local-6989586621679074746"><span class="annot"><span class="annottext">createDirOp :: String -&gt; OperatorT m ()
-</span><a href="#local-6989586621679074746"><span class="hs-identifier hs-var hs-var hs-var hs-var">createDirOp</span></a></span></span><span> </span><span id="local-6989586621679074745"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074745"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-240"></span><span>    </span><span id="local-6989586621679074744"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074744"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075185"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-239"></span><span>  </span><span id="local-6989586621679075178"><span class="annot"><span class="annottext">createDirOp :: String -&gt; OperatorT m ()
+</span><a href="#local-6989586621679075178"><span class="hs-identifier hs-var hs-var hs-var hs-var">createDirOp</span></a></span></span><span> </span><span id="local-6989586621679075177"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075177"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-240"></span><span>    </span><span id="local-6989586621679075176"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075176"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-241"></span><span>    </span><span id="local-6989586621679074743"><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074743"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-241"></span><span>    </span><span id="local-6989586621679075175"><span class="annot"><span class="annottext">Either OpenDALError ()
+</span><a href="#local-6989586621679075175"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError ())
 </span><a href="OpenDAL.html#createDirOpRaw"><span class="hs-identifier hs-var">createDirOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074744"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074745"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075176"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075177"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-242"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074743"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-243"></span><span>  </span><span id="local-6989586621679074736"><span class="annot"><span class="annottext">copyOp :: String -&gt; String -&gt; OperatorT m ()
-</span><a href="#local-6989586621679074736"><span class="hs-identifier hs-var hs-var hs-var hs-var">copyOp</span></a></span></span><span> </span><span id="local-6989586621679074735"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621679074734"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074734"><span class="hs-identifier hs-var">dst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-244"></span><span>    </span><span id="local-6989586621679074733"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074733"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075175"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-243"></span><span>  </span><span id="local-6989586621679075168"><span class="annot"><span class="annottext">copyOp :: String -&gt; String -&gt; OperatorT m ()
+</span><a href="#local-6989586621679075168"><span class="hs-identifier hs-var hs-var hs-var hs-var">copyOp</span></a></span></span><span> </span><span id="local-6989586621679075167"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075167"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621679075166"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075166"><span class="hs-identifier hs-var">dst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-244"></span><span>    </span><span id="local-6989586621679075165"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075165"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-245"></span><span>    </span><span id="local-6989586621679074732"><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074732"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-245"></span><span>    </span><span id="local-6989586621679075164"><span class="annot"><span class="annottext">Either OpenDALError ()
+</span><a href="#local-6989586621679075164"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; String -&gt; IO (Either OpenDALError ())
 </span><a href="OpenDAL.html#copyOpRaw"><span class="hs-identifier hs-var">copyOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074733"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074735"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074734"><span class="hs-identifier hs-var">dst</span></a></span><span>
+</span><a href="#local-6989586621679075165"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075167"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075166"><span class="hs-identifier hs-var">dst</span></a></span><span>
 </span><span id="line-246"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074732"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-247"></span><span>  </span><span id="local-6989586621679074725"><span class="annot"><span class="annottext">renameOp :: String -&gt; String -&gt; OperatorT m ()
-</span><a href="#local-6989586621679074725"><span class="hs-identifier hs-var hs-var hs-var hs-var">renameOp</span></a></span></span><span> </span><span id="local-6989586621679074724"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074724"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621679074723"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074723"><span class="hs-identifier hs-var">dst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-248"></span><span>    </span><span id="local-6989586621679074722"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074722"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075164"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-247"></span><span>  </span><span id="local-6989586621679075157"><span class="annot"><span class="annottext">renameOp :: String -&gt; String -&gt; OperatorT m ()
+</span><a href="#local-6989586621679075157"><span class="hs-identifier hs-var hs-var hs-var hs-var">renameOp</span></a></span></span><span> </span><span id="local-6989586621679075156"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075156"><span class="hs-identifier hs-var">src</span></a></span></span><span> </span><span id="local-6989586621679075155"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075155"><span class="hs-identifier hs-var">dst</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-248"></span><span>    </span><span id="local-6989586621679075154"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075154"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-249"></span><span>    </span><span id="local-6989586621679074721"><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074721"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-249"></span><span>    </span><span id="local-6989586621679075153"><span class="annot"><span class="annottext">Either OpenDALError ()
+</span><a href="#local-6989586621679075153"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; String -&gt; IO (Either OpenDALError ())
 </span><a href="OpenDAL.html#renameOpRaw"><span class="hs-identifier hs-var">renameOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074722"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074724"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074723"><span class="hs-identifier hs-var">dst</span></a></span><span>
+</span><a href="#local-6989586621679075154"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075156"><span class="hs-identifier hs-var">src</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075155"><span class="hs-identifier hs-var">dst</span></a></span><span>
 </span><span id="line-250"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074721"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-251"></span><span>  </span><span id="local-6989586621679074714"><span class="annot"><span class="annottext">deleteOp :: String -&gt; OperatorT m ()
-</span><a href="#local-6989586621679074714"><span class="hs-identifier hs-var hs-var hs-var hs-var">deleteOp</span></a></span></span><span> </span><span id="local-6989586621679074713"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074713"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-252"></span><span>    </span><span id="local-6989586621679074712"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074712"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075153"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-251"></span><span>  </span><span id="local-6989586621679075146"><span class="annot"><span class="annottext">deleteOp :: String -&gt; OperatorT m ()
+</span><a href="#local-6989586621679075146"><span class="hs-identifier hs-var hs-var hs-var hs-var">deleteOp</span></a></span></span><span> </span><span id="local-6989586621679075145"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075145"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-252"></span><span>    </span><span id="local-6989586621679075144"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075144"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-253"></span><span>    </span><span id="local-6989586621679074711"><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074711"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-253"></span><span>    </span><span id="local-6989586621679075143"><span class="annot"><span class="annottext">Either OpenDALError ()
+</span><a href="#local-6989586621679075143"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError ())
 </span><a href="OpenDAL.html#deleteOpRaw"><span class="hs-identifier hs-var">deleteOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074712"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074713"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075144"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075145"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-254"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError ()
-</span><a href="#local-6989586621679074711"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-255"></span><span>  </span><span id="local-6989586621679074704"><span class="annot"><span class="annottext">statOp :: String -&gt; OperatorT m Metadata
-</span><a href="#local-6989586621679074704"><span class="hs-identifier hs-var hs-var hs-var hs-var">statOp</span></a></span></span><span> </span><span id="local-6989586621679074703"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074703"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-256"></span><span>    </span><span id="local-6989586621679074702"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074702"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075143"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-255"></span><span>  </span><span id="local-6989586621679075136"><span class="annot"><span class="annottext">statOp :: String -&gt; OperatorT m Metadata
+</span><a href="#local-6989586621679075136"><span class="hs-identifier hs-var hs-var hs-var hs-var">statOp</span></a></span></span><span> </span><span id="local-6989586621679075135"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075135"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-256"></span><span>    </span><span id="local-6989586621679075134"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075134"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-257"></span><span>    </span><span id="local-6989586621679074701"><span class="annot"><span class="annottext">Either OpenDALError Metadata
-</span><a href="#local-6989586621679074701"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-257"></span><span>    </span><span id="local-6989586621679075133"><span class="annot"><span class="annottext">Either OpenDALError Metadata
+</span><a href="#local-6989586621679075133"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError Metadata)
 </span><a href="OpenDAL.html#statOpRaw"><span class="hs-identifier hs-var">statOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074702"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074703"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075134"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075135"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-258"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError Metadata
-</span><a href="#local-6989586621679074701"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-259"></span><span>  </span><span id="local-6989586621679074694"><span class="annot"><span class="annottext">listOp :: String -&gt; OperatorT m Lister
-</span><a href="#local-6989586621679074694"><span class="hs-identifier hs-var hs-var hs-var hs-var">listOp</span></a></span></span><span> </span><span id="local-6989586621679074693"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074693"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-260"></span><span>    </span><span id="local-6989586621679074692"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074692"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075133"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-259"></span><span>  </span><span id="local-6989586621679075126"><span class="annot"><span class="annottext">listOp :: String -&gt; OperatorT m Lister
+</span><a href="#local-6989586621679075126"><span class="hs-identifier hs-var hs-var hs-var hs-var">listOp</span></a></span></span><span> </span><span id="local-6989586621679075125"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075125"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-260"></span><span>    </span><span id="local-6989586621679075124"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075124"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-261"></span><span>    </span><span id="local-6989586621679074691"><span class="annot"><span class="annottext">Either OpenDALError Lister
-</span><a href="#local-6989586621679074691"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-261"></span><span>    </span><span id="local-6989586621679075123"><span class="annot"><span class="annottext">Either OpenDALError Lister
+</span><a href="#local-6989586621679075123"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError Lister)
 </span><a href="OpenDAL.html#listOpRaw"><span class="hs-identifier hs-var">listOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074692"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074693"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075124"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075125"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-262"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError Lister
-</span><a href="#local-6989586621679074691"><span class="hs-identifier hs-var">result</span></a></span><span>
-</span><span id="line-263"></span><span>  </span><span id="local-6989586621679074684"><span class="annot"><span class="annottext">scanOp :: String -&gt; OperatorT m Lister
-</span><a href="#local-6989586621679074684"><span class="hs-identifier hs-var hs-var hs-var hs-var">scanOp</span></a></span></span><span> </span><span id="local-6989586621679074683"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074683"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-264"></span><span>    </span><span id="local-6989586621679074682"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074682"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
+</span><a href="#local-6989586621679075123"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><span id="line-263"></span><span>  </span><span id="local-6989586621679075116"><span class="annot"><span class="annottext">scanOp :: String -&gt; OperatorT m Lister
+</span><a href="#local-6989586621679075116"><span class="hs-identifier hs-var hs-var hs-var hs-var">scanOp</span></a></span></span><span> </span><span id="local-6989586621679075115"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075115"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-264"></span><span>    </span><span id="local-6989586621679075114"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075114"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *). MonadReader r m =&gt; m r
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">ask</span></a></span><span>
-</span><span id="line-265"></span><span>    </span><span id="local-6989586621679074681"><span class="annot"><span class="annottext">Either OpenDALError Lister
-</span><a href="#local-6989586621679074681"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
+</span><span id="line-265"></span><span>    </span><span id="local-6989586621679075113"><span class="annot"><span class="annottext">Either OpenDALError Lister
+</span><a href="#local-6989586621679075113"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. MonadIO m =&gt; IO a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">liftIO</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">Operator -&gt; String -&gt; IO (Either OpenDALError Lister)
 </span><a href="OpenDAL.html#scanOpRaw"><span class="hs-identifier hs-var">scanOpRaw</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074682"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074683"><span class="hs-identifier hs-var">path</span></a></span><span>
+</span><a href="#local-6989586621679075114"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075115"><span class="hs-identifier hs-var">path</span></a></span><span>
 </span><span id="line-266"></span><span>    </span><span class="annot"><span class="annottext">forall a c b. (a -&gt; c) -&gt; (b -&gt; c) -&gt; Either a b -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">either</span></a></span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. MonadError e m =&gt; e -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/mtl-2.2.2/src"><span class="hs-identifier hs-var">throwError</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Either OpenDALError Lister
-</span><a href="#local-6989586621679074681"><span class="hs-identifier hs-var">result</span></a></span><span>
+</span><a href="#local-6989586621679075113"><span class="hs-identifier hs-var">result</span></a></span><span>
 </span><span id="line-267"></span><span>
 </span><span id="line-268"></span><span class="hs-comment">-- helper functions</span><span>
 </span><span id="line-269"></span><span>
 </span><span id="line-270"></span><span class="annot"><a href="OpenDAL.html#byteSliceToByteString"><span class="hs-identifier hs-type">byteSliceToByteString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-type">ByteSlice</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/do [...]
 </span><span id="line-271"></span><span id="byteSliceToByteString"><span class="annot"><span class="annottext">byteSliceToByteString :: ByteSlice -&gt; IO ByteString
-</span><a href="OpenDAL.html#byteSliceToByteString"><span class="hs-identifier hs-var hs-var">byteSliceToByteString</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-type">ByteSlice</span></a></span><span> </span><span id="local-6989586621679074678"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074678"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span id="local-6989586621679074677"><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074677"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CStringLen -&gt; IO ByteString
+</span><a href="OpenDAL.html#byteSliceToByteString"><span class="hs-identifier hs-var hs-var">byteSliceToByteString</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#ByteSlice"><span class="hs-identifier hs-type">ByteSlice</span></a></span><span> </span><span id="local-6989586621679075110"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075110"><span class="hs-identifier hs-var">bsDataPtr</span></a></span></span><span> </span><span id="local-6989586621679075109"><span class="annot"><span class="annottext">CSize
+</span><a href="#local-6989586621679075109"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CStringLen -&gt; IO ByteString
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bytestring-0.11.4.0/src"><span class="hs-identifier hs-var">BS.packCStringLen</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074678"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
+</span><a href="#local-6989586621679075110"><span class="hs-identifier hs-var">bsDataPtr</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">CSize
-</span><a href="#local-6989586621679074677"><span class="hs-identifier hs-var">len</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075109"><span class="hs-identifier hs-var">len</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-272"></span><span>
 </span><span id="line-273"></span><span class="annot"><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-type">parseErrorCode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-type">Int</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="O [...]
 </span><span id="line-274"></span><span id="parseErrorCode"><span class="annot"><span class="annottext">parseErrorCode :: Int -&gt; ErrorCode
@@ -679,32 +679,32 @@ m a -&gt; t m a
 </span><span id="line-291"></span><span>
 </span><span id="line-292"></span><span class="annot"><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-type">parseCString</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">CString</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href=".. [...]
 </span><span id="line-293"></span><span id="parseCString"><span class="annot"><span class="annottext">parseCString :: CString -&gt; IO (Maybe String)
-</span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var hs-var">parseCString</span></a></span></span><span> </span><span id="local-6989586621679074672"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074672"><span class="hs-identifier hs-var">value</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074672"><span class="hs-identifier hs-var">value</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var hs-var">parseCString</span></a></span></span><span> </span><span id="local-6989586621679075104"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075104"><span class="hs-identifier hs-var">value</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075104"><span class="hs-identifier hs-var">value</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Ptr a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">nullPtr</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Maybe a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
-</span><span id="line-294"></span><span class="annot"><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span id="local-6989586621679074670"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074670"><span class="hs-identifier hs-var">value</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-295"></span><span>  </span><span id="local-6989586621679074669"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074669"><span class="hs-identifier hs-var">value'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><span id="line-294"></span><span class="annot"><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span id="local-6989586621679075102"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075102"><span class="hs-identifier hs-var">value</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-295"></span><span>  </span><span id="local-6989586621679075101"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075101"><span class="hs-identifier hs-var">value'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074670"><span class="hs-identifier hs-var">value</span></a></span><span>
+</span><a href="#local-6989586621679075102"><span class="hs-identifier hs-var">value</span></a></span><span>
 </span><span id="line-296"></span><span>  </span><span class="annot"><span class="annottext">forall a. Ptr a -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">free</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074670"><span class="hs-identifier hs-var">value</span></a></span><span>
+</span><a href="#local-6989586621679075102"><span class="hs-identifier hs-var">value</span></a></span><span>
 </span><span id="line-297"></span><span>  </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. a -&gt; Maybe a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074669"><span class="hs-identifier hs-var">value'</span></a></span><span>
+</span><a href="#local-6989586621679075101"><span class="hs-identifier hs-var">value'</span></a></span><span>
 </span><span id="line-298"></span><span>
 </span><span id="line-299"></span><span class="annot"><a href="OpenDAL.html#parseTime"><span class="hs-identifier hs-type">parseTime</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">String</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:/ [...]
 </span><span id="line-300"></span><span id="parseTime"><span class="annot"><span class="annottext">parseTime :: String -&gt; Maybe UTCTime
-</span><a href="OpenDAL.html#parseTime"><span class="hs-identifier hs-var hs-var">parseTime</span></a></span></span><span> </span><span id="local-6989586621679074665"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074665"><span class="hs-identifier hs-var">time</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ZonedTime -&gt; UTCTime
+</span><a href="OpenDAL.html#parseTime"><span class="hs-identifier hs-var hs-var">parseTime</span></a></span></span><span> </span><span id="local-6989586621679075097"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075097"><span class="hs-identifier hs-var">time</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ZonedTime -&gt; UTCTime
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/time-1.11.1.1/src"><span class="hs-identifier hs-var">zonedTimeToUTC</span></a></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) t.
 (MonadFail m, ParseTime t) =&gt;
@@ -713,84 +713,84 @@ Bool -&gt; TimeLocale -&gt; String -&gt; String -&gt; m t
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-identifier hs-var">True</span></a></span><span> </span><span class="annot"><span class="annottext">TimeLocale
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/time-1.11.1.1/src"><span class="hs-identifier hs-var">defaultTimeLocale</span></a></span><span> </span><span class="annot"><span class="annottext">String
 </span><span class="hs-string">&quot;%Y-%m-%dT%H:%M:%S%Q%z&quot;</span></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074665"><span class="hs-identifier hs-var">time</span></a></span><span>
+</span><a href="#local-6989586621679075097"><span class="hs-identifier hs-var">time</span></a></span><span>
 </span><span id="line-301"></span><span>
 </span><span id="line-302"></span><span class="annot"><a href="OpenDAL.html#parseFFIMetadata"><span class="hs-identifier hs-type">parseFFIMetadata</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-type">FFIMetadata</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc- [...]
 </span><span id="line-303"></span><span id="parseFFIMetadata"><span class="annot"><span class="annottext">parseFFIMetadata :: FFIMetadata -&gt; IO Metadata
-</span><a href="OpenDAL.html#parseFFIMetadata"><span class="hs-identifier hs-var hs-var">parseFFIMetadata</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-type">FFIMetadata</span></a></span><span> </span><span id="local-6989586621679074661"><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074661"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621679074660"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074660"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span id="local-6989586621679074659"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074659"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span id="local-6989586621679074658"><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074658"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span id="local-6989586621679074657"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074657"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span id="local-6989586621679074656"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074656"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span id="local-6989586621679074655"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074655"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span id="local-6989586621679074654"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074654"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-304"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074651"><span class="annot"><span class="annottext">mode' :: EntryMode
-</span><a href="#local-6989586621679074651"><span class="hs-identifier hs-var hs-var">mode'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; EntryMode
+</span><a href="OpenDAL.html#parseFFIMetadata"><span class="hs-identifier hs-var hs-var">parseFFIMetadata</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.FFI.html#FFIMetadata"><span class="hs-identifier hs-type">FFIMetadata</span></a></span><span> </span><span id="local-6989586621679075093"><span class="annot"><span class="annottext">CUInt
+</span><a href="#local-6989586621679075093"><span class="hs-identifier hs-var">mode</span></a></span></span><span> </span><span id="local-6989586621679075092"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075092"><span class="hs-identifier hs-var">cacheControl</span></a></span></span><span> </span><span id="local-6989586621679075091"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075091"><span class="hs-identifier hs-var">contentDisposition</span></a></span></span><span> </span><span id="local-6989586621679075090"><span class="annot"><span class="annottext">CULong
+</span><a href="#local-6989586621679075090"><span class="hs-identifier hs-var">contentLength</span></a></span></span><span> </span><span id="local-6989586621679075089"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075089"><span class="hs-identifier hs-var">contentMD5</span></a></span></span><span> </span><span id="local-6989586621679075088"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075088"><span class="hs-identifier hs-var">contentType</span></a></span></span><span> </span><span id="local-6989586621679075087"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075087"><span class="hs-identifier hs-var">eTag</span></a></span></span><span> </span><span id="local-6989586621679075086"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075086"><span class="hs-identifier hs-var">lastModified</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-304"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679075083"><span class="annot"><span class="annottext">mode' :: EntryMode
+</span><a href="#local-6989586621679075083"><span class="hs-identifier hs-var hs-var">mode'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; EntryMode
 </span><a href="OpenDAL.html#parseEntryMode"><span class="hs-identifier hs-var">parseEntryMode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
-</span><a href="#local-6989586621679074661"><span class="hs-identifier hs-var">mode</span></a></span><span>
-</span><span id="line-305"></span><span>  </span><span id="local-6989586621679074650"><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074650"><span class="hs-identifier hs-var">cacheControl'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
+</span><a href="#local-6989586621679075093"><span class="hs-identifier hs-var">mode</span></a></span><span>
+</span><span id="line-305"></span><span>  </span><span id="local-6989586621679075082"><span class="annot"><span class="annottext">Maybe String
+</span><a href="#local-6989586621679075082"><span class="hs-identifier hs-var">cacheControl'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074660"><span class="hs-identifier hs-var">cacheControl</span></a></span><span>
-</span><span id="line-306"></span><span>  </span><span id="local-6989586621679074649"><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074649"><span class="hs-identifier hs-var">contentDisposition'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
+</span><a href="#local-6989586621679075092"><span class="hs-identifier hs-var">cacheControl</span></a></span><span>
+</span><span id="line-306"></span><span>  </span><span id="local-6989586621679075081"><span class="annot"><span class="annottext">Maybe String
+</span><a href="#local-6989586621679075081"><span class="hs-identifier hs-var">contentDisposition'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074659"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span>
-</span><span id="line-307"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074646"><span class="annot"><span class="annottext">contentLength' :: Integer
-</span><a href="#local-6989586621679074646"><span class="hs-identifier hs-var hs-var">contentLength'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Integral a =&gt; a -&gt; Integer
+</span><a href="#local-6989586621679075091"><span class="hs-identifier hs-var">contentDisposition</span></a></span><span>
+</span><span id="line-307"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679075078"><span class="annot"><span class="annottext">contentLength' :: Integer
+</span><a href="#local-6989586621679075078"><span class="hs-identifier hs-var hs-var">contentLength'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a. Integral a =&gt; a -&gt; Integer
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">toInteger</span></a></span><span> </span><span class="annot"><span class="annottext">CULong
-</span><a href="#local-6989586621679074658"><span class="hs-identifier hs-var">contentLength</span></a></span><span>
-</span><span id="line-308"></span><span>  </span><span id="local-6989586621679074645"><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074645"><span class="hs-identifier hs-var">contentMD5'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
+</span><a href="#local-6989586621679075090"><span class="hs-identifier hs-var">contentLength</span></a></span><span>
+</span><span id="line-308"></span><span>  </span><span id="local-6989586621679075077"><span class="annot"><span class="annottext">Maybe String
+</span><a href="#local-6989586621679075077"><span class="hs-identifier hs-var">contentMD5'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074657"><span class="hs-identifier hs-var">contentMD5</span></a></span><span>
-</span><span id="line-309"></span><span>  </span><span id="local-6989586621679074644"><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074644"><span class="hs-identifier hs-var">contentType'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
+</span><a href="#local-6989586621679075089"><span class="hs-identifier hs-var">contentMD5</span></a></span><span>
+</span><span id="line-309"></span><span>  </span><span id="local-6989586621679075076"><span class="annot"><span class="annottext">Maybe String
+</span><a href="#local-6989586621679075076"><span class="hs-identifier hs-var">contentType'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074656"><span class="hs-identifier hs-var">contentType</span></a></span><span>
-</span><span id="line-310"></span><span>  </span><span id="local-6989586621679074643"><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074643"><span class="hs-identifier hs-var">eTag'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
+</span><a href="#local-6989586621679075088"><span class="hs-identifier hs-var">contentType</span></a></span><span>
+</span><span id="line-310"></span><span>  </span><span id="local-6989586621679075075"><span class="annot"><span class="annottext">Maybe String
+</span><a href="#local-6989586621679075075"><span class="hs-identifier hs-var">eTag'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074655"><span class="hs-identifier hs-var">eTag</span></a></span><span>
-</span><span id="line-311"></span><span>  </span><span id="local-6989586621679074642"><span class="annot"><span class="annottext">Maybe UTCTime
-</span><a href="#local-6989586621679074642"><span class="hs-identifier hs-var">lastModified'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
+</span><a href="#local-6989586621679075087"><span class="hs-identifier hs-var">eTag</span></a></span><span>
+</span><span id="line-311"></span><span>  </span><span id="local-6989586621679075074"><span class="annot"><span class="annottext">Maybe UTCTime
+</span><a href="#local-6989586621679075074"><span class="hs-identifier hs-var">lastModified'</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Maybe UTCTime
 </span><a href="OpenDAL.html#parseTime"><span class="hs-identifier hs-var">parseTime</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074654"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
+</span><a href="#local-6989586621679075086"><span class="hs-identifier hs-var">lastModified</span></a></span><span>
 </span><span id="line-312"></span><span>  </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span>
 </span><span id="line-313"></span><span>    </span><span class="annot"><a href="OpenDAL.html#Metadata"><span class="hs-identifier hs-type">Metadata</span></a></span><span>
 </span><span id="line-314"></span><span>      </span><span class="hs-special">{</span><span> </span><span class="annot"><span class="annottext">mMode :: EntryMode
 </span><a href="OpenDAL.html#mMode"><span class="hs-identifier hs-var">mMode</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">EntryMode
-</span><a href="#local-6989586621679074651"><span class="hs-identifier hs-var">mode'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075083"><span class="hs-identifier hs-var">mode'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-315"></span><span>        </span><span class="annot"><span class="annottext">mCacheControl :: Maybe String
 </span><a href="OpenDAL.html#mCacheControl"><span class="hs-identifier hs-var">mCacheControl</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074650"><span class="hs-identifier hs-var">cacheControl'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075082"><span class="hs-identifier hs-var">cacheControl'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-316"></span><span>        </span><span class="annot"><span class="annottext">mContentDisposition :: Maybe String
 </span><a href="OpenDAL.html#mContentDisposition"><span class="hs-identifier hs-var">mContentDisposition</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074649"><span class="hs-identifier hs-var">contentDisposition'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075081"><span class="hs-identifier hs-var">contentDisposition'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-317"></span><span>        </span><span class="annot"><span class="annottext">mContentLength :: Integer
 </span><a href="OpenDAL.html#mContentLength"><span class="hs-identifier hs-var">mContentLength</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Integer
-</span><a href="#local-6989586621679074646"><span class="hs-identifier hs-var">contentLength'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075078"><span class="hs-identifier hs-var">contentLength'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-318"></span><span>        </span><span class="annot"><span class="annottext">mContentMD5 :: Maybe String
 </span><a href="OpenDAL.html#mContentMD5"><span class="hs-identifier hs-var">mContentMD5</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074645"><span class="hs-identifier hs-var">contentMD5'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075077"><span class="hs-identifier hs-var">contentMD5'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-319"></span><span>        </span><span class="annot"><span class="annottext">mContentType :: Maybe String
 </span><a href="OpenDAL.html#mContentType"><span class="hs-identifier hs-var">mContentType</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074644"><span class="hs-identifier hs-var">contentType'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075076"><span class="hs-identifier hs-var">contentType'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-320"></span><span>        </span><span class="annot"><span class="annottext">mETag :: Maybe String
 </span><a href="OpenDAL.html#mETag"><span class="hs-identifier hs-var">mETag</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String
-</span><a href="#local-6989586621679074643"><span class="hs-identifier hs-var">eTag'</span></a></span><span class="hs-special">,</span><span>
+</span><a href="#local-6989586621679075075"><span class="hs-identifier hs-var">eTag'</span></a></span><span class="hs-special">,</span><span>
 </span><span id="line-321"></span><span>        </span><span class="annot"><span class="annottext">mLastModified :: Maybe UTCTime
 </span><a href="OpenDAL.html#mLastModified"><span class="hs-identifier hs-var">mLastModified</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe UTCTime
-</span><a href="#local-6989586621679074642"><span class="hs-identifier hs-var">lastModified'</span></a></span><span>
+</span><a href="#local-6989586621679075074"><span class="hs-identifier hs-var">lastModified'</span></a></span><span>
 </span><span id="line-322"></span><span>      </span><span class="hs-special">}</span><span>
 </span><span id="line-323"></span><span>
 </span><span id="line-324"></span><span class="hs-comment">-- Exported functions</span><span>
@@ -814,16 +814,16 @@ Bool -&gt; TimeLocale -&gt; String -&gt; String -&gt; m t
 </span><span id="line-342"></span><span class="hs-comment">-- @</span><span>
 </span><span id="line-343"></span><span class="hs-comment">-- runOp operator operation</span><span>
 </span><span id="line-344"></span><span class="hs-comment">-- @</span><span>
-</span><span id="line-345"></span><span id="local-6989586621679075379"><span id="local-6989586621679075380"><span class="annot"><a href="OpenDAL.html#runOp"><span class="hs-identifier hs-type">runOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="OpenDAL.ht [...]
+</span><span id="line-345"></span><span id="local-6989586621679075811"><span id="local-6989586621679075812"><span class="annot"><a href="OpenDAL.html#runOp"><span class="hs-identifier hs-type">runOp</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="OpenDAL.ht [...]
 </span><span id="line-346"></span><span id="runOp"><span class="annot"><span class="annottext">runOp :: forall (m :: * -&gt; *) a.
 Operator -&gt; OperatorT m a -&gt; m (Either OpenDALError a)
-</span><a href="OpenDAL.html#runOp"><span class="hs-identifier hs-var hs-var">runOp</span></a></span></span><span> </span><span id="local-6989586621679074641"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074641"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. ExceptT e m a -&gt; m (Either e a)
+</span><a href="OpenDAL.html#runOp"><span class="hs-identifier hs-var hs-var">runOp</span></a></span></span><span> </span><span id="local-6989586621679075073"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075073"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall e (m :: * -&gt; *) a. ExceptT e m a -&gt; m (Either e a)
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-var">runExceptT</span></a></span><span> </span><span class="annot"><span class="annottext">forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">forall r (m :: * -&gt; *) a. ReaderT r m a -&gt; r -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/transformers-0.5.6.2/src"><span class="hs-identifier hs-var">runReaderT</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074641"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
+</span><a href="#local-6989586621679075073"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a.
 OperatorT m a -&gt; ReaderT Operator (ExceptT OpenDALError m) a
 </span><a href="OpenDAL.html#runOperatorT"><span class="hs-identifier hs-var">runOperatorT</span></a></span><span>
@@ -832,76 +832,76 @@ OperatorT m a -&gt; ReaderT Operator (ExceptT OpenDALError m) a
 </span><span id="line-349"></span><span class="hs-comment">-- | Creates a new OpenDAL operator via `OperatorConfig`.</span><span>
 </span><span id="line-350"></span><span class="annot"><a href="OpenDAL.html#newOperator"><span class="hs-identifier hs-type">newOperator</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#OperatorConfig"><span class="hs-identifier hs-type">OperatorConfig</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/ht [...]
 </span><span id="line-351"></span><span id="newOperator"><span class="annot"><span class="annottext">newOperator :: OperatorConfig -&gt; IO (Either OpenDALError Operator)
-</span><a href="OpenDAL.html#newOperator"><span class="hs-identifier hs-var hs-var">newOperator</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#OperatorConfig"><span class="hs-identifier hs-type">OperatorConfig</span></a></span><span> </span><span id="local-6989586621679074639"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074639"><span class="hs-identifier hs-var">scheme</span></a></span></span><span> </span><span id="local-6989586621679074638"><span class="annot"><span class="annottext">HashMap String String
-</span><a href="#local-6989586621679074638"><span class="hs-identifier hs-var">hashMap</span></a></span></span><span> </span><span id="local-6989586621679074637"><span class="annot"><span class="annottext">Maybe (LogAction IO Message)
-</span><a href="#local-6989586621679074637"><span class="hs-identifier hs-var">maybeLogger</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-352"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074636"><span class="annot"><span class="annottext">keysAndValues :: [(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var hs-var">keysAndValues</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall k v. HashMap k v -&gt; [(k, v)]
-</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-f7a4e8b7261a186fd4e84f1c0dcf660056808dc4a060e970122b8f0258ce61ca/share/doc/html/src"><span class="hs-identifier hs-var">HashMap.toList</span></a></span><span> </span><span class="annot"><span class="annottext">HashMap String String
-</span><a href="#local-6989586621679074638"><span class="hs-identifier hs-var">hashMap</span></a></span><span>
+</span><a href="OpenDAL.html#newOperator"><span class="hs-identifier hs-var hs-var">newOperator</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#OperatorConfig"><span class="hs-identifier hs-type">OperatorConfig</span></a></span><span> </span><span id="local-6989586621679075071"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075071"><span class="hs-identifier hs-var">scheme</span></a></span></span><span> </span><span id="local-6989586621679075070"><span class="annot"><span class="annottext">HashMap String String
+</span><a href="#local-6989586621679075070"><span class="hs-identifier hs-var">hashMap</span></a></span></span><span> </span><span id="local-6989586621679075069"><span class="annot"><span class="annottext">Maybe (LogAction IO Message)
+</span><a href="#local-6989586621679075069"><span class="hs-identifier hs-var">maybeLogger</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-352"></span><span>  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679075068"><span class="annot"><span class="annottext">keysAndValues :: [(String, String)]
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var hs-var">keysAndValues</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall k v. HashMap k v -&gt; [(k, v)]
+</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/unordered-containers-0.2.20-2beab32e369737342465f60d4410b5e9784d9c17c0bd93c2f83583a471504e5b/share/doc/html/src"><span class="hs-identifier hs-var">HashMap.toList</span></a></span><span> </span><span class="annot"><span class="annottext">HashMap String String
+</span><a href="#local-6989586621679075070"><span class="hs-identifier hs-var">hashMap</span></a></span><span>
 </span><span id="line-353"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074639"><span class="hs-identifier hs-var">scheme</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074633"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074633"><span class="hs-identifier hs-var">cScheme</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075071"><span class="hs-identifier hs-var">scheme</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075065"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075065"><span class="hs-identifier hs-var">cScheme</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-354"></span><span>    </span><span class="annot"><span class="annottext">forall a b res.
 (a -&gt; (b -&gt; res) -&gt; res) -&gt; [a] -&gt; ([b] -&gt; res) -&gt; res
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withMany</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a, b) -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fst</span></a></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074631"><span class="annot"><span class="annottext">[CString]
-</span><a href="#local-6989586621679074631"><span class="hs-identifier hs-var">cKeys</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075063"><span class="annot"><span class="annottext">[CString]
+</span><a href="#local-6989586621679075063"><span class="hs-identifier hs-var">cKeys</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-355"></span><span>      </span><span class="annot"><span class="annottext">forall a b res.
 (a -&gt; (b -&gt; res) -&gt; res) -&gt; [a] -&gt; ([b] -&gt; res) -&gt; res
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withMany</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a, b) -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">snd</span></a></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074630"><span class="annot"><span class="annottext">[CString]
-</span><a href="#local-6989586621679074630"><span class="hs-identifier hs-var">cValues</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075062"><span class="annot"><span class="annottext">[CString]
+</span><a href="#local-6989586621679075062"><span class="hs-identifier hs-var">cValues</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-356"></span><span>        </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Int -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">allocaArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074627"><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074627"><span class="hs-identifier hs-var">cKeysPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075059"><span class="annot"><span class="annottext">Ptr CString
+</span><a href="#local-6989586621679075059"><span class="hs-identifier hs-var">cKeysPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-357"></span><span>          </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; Int -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">allocaArray</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074626"><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074626"><span class="hs-identifier hs-var">cValuesPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075058"><span class="annot"><span class="annottext">Ptr CString
+</span><a href="#local-6989586621679075058"><span class="hs-identifier hs-var">cValuesPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-358"></span><span>            </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074624"><span class="annot"><span class="annottext">Ptr (FFIResult RawOperator)
-</span><a href="#local-6989586621679074624"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-359"></span><span>              </span><span id="local-6989586621679074623"><span class="annot"><span class="annottext">FunPtr (CUInt -&gt; CString -&gt; IO ())
-</span><a href="#local-6989586621679074623"><span class="hs-identifier hs-var">logFnPtr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe (LogAction IO Message)
-</span><a href="#local-6989586621679074637"><span class="hs-identifier hs-var">maybeLogger</span></a></span><span> </span><span class="hs-keyword">of</span><span>
-</span><span id="line-360"></span><span>                </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679074622"><span class="annot"><span class="annottext">LogAction IO Message
-</span><a href="#local-6989586621679074622"><span class="hs-identifier hs-var">logger</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(CUInt -&gt; CString -&gt; IO ())
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075056"><span class="annot"><span class="annottext">Ptr (FFIResult RawOperator)
+</span><a href="#local-6989586621679075056"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-359"></span><span>              </span><span id="local-6989586621679075055"><span class="annot"><span class="annottext">FunPtr (CUInt -&gt; CString -&gt; IO ())
+</span><a href="#local-6989586621679075055"><span class="hs-identifier hs-var">logFnPtr</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Maybe (LogAction IO Message)
+</span><a href="#local-6989586621679075069"><span class="hs-identifier hs-var">maybeLogger</span></a></span><span> </span><span class="hs-keyword">of</span><span>
+</span><span id="line-360"></span><span>                </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679075054"><span class="annot"><span class="annottext">LogAction IO Message
+</span><a href="#local-6989586621679075054"><span class="hs-identifier hs-var">logger</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(CUInt -&gt; CString -&gt; IO ())
 -&gt; IO (FunPtr (CUInt -&gt; CString -&gt; IO ()))
 </span><a href="OpenDAL.FFI.html#wrapLogFn"><span class="hs-identifier hs-var">wrapLogFn</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall {a} {sev}.
 (Integral a, Enum sev) =&gt;
 LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
-</span><a href="#local-6989586621679074620"><span class="hs-identifier hs-var">logFn</span></a></span><span> </span><span class="annot"><span class="annottext">LogAction IO Message
-</span><a href="#local-6989586621679074622"><span class="hs-identifier hs-var">logger</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075052"><span class="hs-identifier hs-var">logFn</span></a></span><span> </span><span class="annot"><span class="annottext">LogAction IO Message
+</span><a href="#local-6989586621679075054"><span class="hs-identifier hs-var">logger</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-361"></span><span>                </span><span class="annot"><span class="annottext">Maybe (LogAction IO Message)
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Nothing</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FunPtr a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">nullFunPtr</span></a></span><span>
 </span><span id="line-362"></span><span>              </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; [a] -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeArray</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074627"><span class="hs-identifier hs-var">cKeysPtr</span></a></span><span> </span><span class="annot"><span class="annottext">[CString]
-</span><a href="#local-6989586621679074631"><span class="hs-identifier hs-var">cKeys</span></a></span><span>
+</span><a href="#local-6989586621679075059"><span class="hs-identifier hs-var">cKeysPtr</span></a></span><span> </span><span class="annot"><span class="annottext">[CString]
+</span><a href="#local-6989586621679075063"><span class="hs-identifier hs-var">cKeys</span></a></span><span>
 </span><span id="line-363"></span><span>              </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; [a] -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">pokeArray</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074626"><span class="hs-identifier hs-var">cValuesPtr</span></a></span><span> </span><span class="annot"><span class="annottext">[CString]
-</span><a href="#local-6989586621679074630"><span class="hs-identifier hs-var">cValues</span></a></span><span>
+</span><a href="#local-6989586621679075058"><span class="hs-identifier hs-var">cValuesPtr</span></a></span><span> </span><span class="annot"><span class="annottext">[CString]
+</span><a href="#local-6989586621679075062"><span class="hs-identifier hs-var">cValues</span></a></span><span>
 </span><span id="line-364"></span><span>              </span><span class="annot"><span class="annottext">CString
 -&gt; Ptr CString
 -&gt; Ptr CString
@@ -910,80 +910,80 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 -&gt; Ptr (FFIResult RawOperator)
 -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_via_map_ffi"><span class="hs-identifier hs-var">c_via_map_ffi</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074633"><span class="hs-identifier hs-var">cScheme</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074627"><span class="hs-identifier hs-var">cKeysPtr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
-</span><a href="#local-6989586621679074626"><span class="hs-identifier hs-var">cValuesPtr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
+</span><a href="#local-6989586621679075065"><span class="hs-identifier hs-var">cScheme</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
+</span><a href="#local-6989586621679075059"><span class="hs-identifier hs-var">cKeysPtr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr CString
+</span><a href="#local-6989586621679075058"><span class="hs-identifier hs-var">cValuesPtr</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Int
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">length</span></a></span><span> </span><span class="annot"><span class="annottext">[(String, String)]
-</span><a href="#local-6989586621679074636"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">FunPtr (CUInt -&gt; CString -&gt; IO ())
-</span><a href="#local-6989586621679074623"><span class="hs-identifier hs-var">logFnPtr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult RawOperator)
-</span><a href="#local-6989586621679074624"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-365"></span><span>              </span><span id="local-6989586621679074616"><span class="annot"><span class="annottext">FFIResult RawOperator
-</span><a href="#local-6989586621679074616"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679075068"><span class="hs-identifier hs-var">keysAndValues</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">FunPtr (CUInt -&gt; CString -&gt; IO ())
+</span><a href="#local-6989586621679075055"><span class="hs-identifier hs-var">logFnPtr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult RawOperator)
+</span><a href="#local-6989586621679075056"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-365"></span><span>              </span><span id="local-6989586621679075048"><span class="annot"><span class="annottext">FFIResult RawOperator
+</span><a href="#local-6989586621679075048"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult RawOperator)
-</span><a href="#local-6989586621679074624"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679075056"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-366"></span><span>              </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult RawOperator
-</span><a href="#local-6989586621679074616"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679075048"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-367"></span><span>                </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-368"></span><span>                  </span><span id="local-6989586621679074613"><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074613"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator -&gt; Operator
+</span><span id="line-368"></span><span>                  </span><span id="local-6989586621679075045"><span class="annot"><span class="annottext">Operator
+</span><a href="#local-6989586621679075045"><span class="hs-identifier hs-var">op</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator -&gt; Operator
 </span><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-var">Operator</span></a></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FinalizerPtr a -&gt; Ptr a -&gt; IO (ForeignPtr a)
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">newForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FunPtr (Ptr RawOperator -&gt; IO ())
 </span><a href="OpenDAL.FFI.html#c_free_operator"><span class="hs-identifier hs-var">c_free_operator</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult RawOperator
-</span><a href="#local-6989586621679074616"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075048"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-369"></span><span>                  </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">Operator
-</span><a href="#local-6989586621679074613"><span class="hs-identifier hs-var">op</span></a></span><span>
+</span><a href="#local-6989586621679075045"><span class="hs-identifier hs-var">op</span></a></span><span>
 </span><span id="line-370"></span><span>                </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-371"></span><span>                  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074607"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074607"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-371"></span><span>                  </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679075039"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679075039"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult RawOperator
-</span><a href="#local-6989586621679074616"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-372"></span><span>                  </span><span id="local-6989586621679074606"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074606"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679075048"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-372"></span><span>                  </span><span id="local-6989586621679075038"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075038"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult RawOperator
-</span><a href="#local-6989586621679074616"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075048"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-373"></span><span>                  </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074607"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074606"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679075039"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075038"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-374"></span><span>  </span><span class="hs-keyword">where</span><span>
-</span><span id="line-375"></span><span>    </span><span id="local-6989586621679074620"><span class="annot"><span class="annottext">logFn :: LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
-</span><a href="#local-6989586621679074620"><span class="hs-identifier hs-var hs-var">logFn</span></a></span></span><span> </span><span id="local-6989586621679074598"><span class="annot"><span class="annottext">LogAction IO (Msg sev)
-</span><a href="#local-6989586621679074598"><span class="hs-identifier hs-var">logger</span></a></span></span><span> </span><span id="local-6989586621679074597"><span class="annot"><span class="annottext">a
-</span><a href="#local-6989586621679074597"><span class="hs-identifier hs-var">enumSeverity</span></a></span></span><span> </span><span id="local-6989586621679074596"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074596"><span class="hs-identifier hs-var">cStr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-376"></span><span>      </span><span id="local-6989586621679074595"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074595"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><span id="line-375"></span><span>    </span><span id="local-6989586621679075052"><span class="annot"><span class="annottext">logFn :: LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
+</span><a href="#local-6989586621679075052"><span class="hs-identifier hs-var hs-var">logFn</span></a></span></span><span> </span><span id="local-6989586621679075030"><span class="annot"><span class="annottext">LogAction IO (Msg sev)
+</span><a href="#local-6989586621679075030"><span class="hs-identifier hs-var">logger</span></a></span></span><span> </span><span id="local-6989586621679075029"><span class="annot"><span class="annottext">a
+</span><a href="#local-6989586621679075029"><span class="hs-identifier hs-var">enumSeverity</span></a></span></span><span> </span><span id="local-6989586621679075028"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075028"><span class="hs-identifier hs-var">cStr</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
+</span><span id="line-376"></span><span>      </span><span id="local-6989586621679075027"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075027"><span class="hs-identifier hs-var">str</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074596"><span class="hs-identifier hs-var">cStr</span></a></span><span>
+</span><a href="#local-6989586621679075028"><span class="hs-identifier hs-var">cStr</span></a></span><span>
 </span><span id="line-377"></span><span>      </span><span class="annot"><span class="annottext">LogAction IO (Msg sev)
-</span><a href="#local-6989586621679074598"><span class="hs-identifier hs-var">logger</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) msg. LogAction m msg -&gt; msg -&gt; m ()
+</span><a href="#local-6989586621679075030"><span class="hs-identifier hs-var">logger</span></a></span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) msg. LogAction m msg -&gt; msg -&gt; m ()
 </span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-core-0.3.2.1-74a2622cd1b0947afed7dc65ccc21d634f00392ca30a4f242395882ed8b18432/share/doc/html/src"><span class="hs-operator hs-var">&lt;&amp;</span></a></span><span> </span><span class="annot"><span class="annottext">forall sev. sev -&gt; CallStack -&gt; Text -&gt; Msg sev
-</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-0.6.1.0-fca10d8f94927606a092f52fb9cc1c019e1c52b7ad9bb7a36d98b041a64e77c1/share/doc/html/src"><span class="hs-identifier hs-var">Msg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. Enum a =&gt; Int -&gt; a
+</span><a href="../file:///home/runner/.cabal/store/ghc-9.2.8/co-log-0.6.1.0-3edca4cdb1b1c405f9f11a831bb425acedf06e7e8696ae19282066377b987559/share/doc/html/src"><span class="hs-identifier hs-var">Msg</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. Enum a =&gt; Int -&gt; a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">toEnum</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">a
-</span><a href="#local-6989586621679074597"><span class="hs-identifier hs-var">enumSeverity</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CallStack
+</span><a href="#local-6989586621679075029"><span class="hs-identifier hs-var">enumSeverity</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CallStack
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">emptyCallStack</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Text
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/text-1.2.5.0/src"><span class="hs-identifier hs-var">pack</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074595"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075027"><span class="hs-identifier hs-var">str</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-378"></span><span>
 </span><span id="line-379"></span><span class="hs-comment">-- $raw-operations</span><span>
 </span><span id="line-380"></span><span class="hs-comment">-- Functions for performing raw OpenDAL operations are defined below.</span><span>
@@ -993,123 +993,123 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><span id="line-384"></span><span class="hs-comment">-- | Read the whole path into a bytes.</span><span>
 </span><span id="line-385"></span><span class="annot"><a href="OpenDAL.html#readOpRaw"><span class="hs-identifier hs-type">readOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bas [...]
 </span><span id="line-386"></span><span id="readOpRaw"><span class="annot"><span class="annottext">readOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError ByteString)
-</span><a href="OpenDAL.html#readOpRaw"><span class="hs-identifier hs-var hs-var">readOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074593"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074593"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074592"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074592"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#readOpRaw"><span class="hs-identifier hs-var hs-var">readOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679075025"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679075025"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679075024"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075024"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074593"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074590"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074590"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075025"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075022"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679075022"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-387"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074592"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074589"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074589"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075024"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075021"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075021"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-388"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074588"><span class="annot"><span class="annottext">Ptr (FFIResult ByteSlice)
-</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075020"><span class="annot"><span class="annottext">Ptr (FFIResult ByteSlice)
+</span><a href="#local-6989586621679075020"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-389"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator -&gt; CString -&gt; Ptr (FFIResult ByteSlice) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_read"><span class="hs-identifier hs-var">c_blocking_read</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074590"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074589"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ByteSlice)
-</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-390"></span><span>      </span><span id="local-6989586621679074586"><span class="annot"><span class="annottext">FFIResult ByteSlice
-</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679075022"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075021"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ByteSlice)
+</span><a href="#local-6989586621679075020"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-390"></span><span>      </span><span id="local-6989586621679075018"><span class="annot"><span class="annottext">FFIResult ByteSlice
+</span><a href="#local-6989586621679075018"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ByteSlice)
-</span><a href="#local-6989586621679074588"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679075020"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-391"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ByteSlice
-</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679075018"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-392"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-393"></span><span>          </span><span id="local-6989586621679074585"><span class="annot"><span class="annottext">ByteSlice
-</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">byteslice</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-393"></span><span>          </span><span id="local-6989586621679075017"><span class="annot"><span class="annottext">ByteSlice
+</span><a href="#local-6989586621679075017"><span class="hs-identifier hs-var">byteslice</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ByteSlice
-</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-394"></span><span>          </span><span id="local-6989586621679074584"><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074584"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ByteSlice -&gt; IO ByteString
+</span><a href="#local-6989586621679075018"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-394"></span><span>          </span><span id="local-6989586621679075016"><span class="annot"><span class="annottext">ByteString
+</span><a href="#local-6989586621679075016"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ByteSlice -&gt; IO ByteString
 </span><a href="OpenDAL.html#byteSliceToByteString"><span class="hs-identifier hs-var">byteSliceToByteString</span></a></span><span> </span><span class="annot"><span class="annottext">ByteSlice
-</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">byteslice</span></a></span><span>
+</span><a href="#local-6989586621679075017"><span class="hs-identifier hs-var">byteslice</span></a></span><span>
 </span><span id="line-395"></span><span>          </span><span class="annot"><span class="annottext">CString -&gt; CSize -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_free_byteslice"><span class="hs-identifier hs-var">c_free_byteslice</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ByteSlice -&gt; CString
 </span><a href="OpenDAL.FFI.html#bsData"><span class="hs-identifier hs-var">bsData</span></a></span><span> </span><span class="annot"><span class="annottext">ByteSlice
-</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">byteslice</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ByteSlice -&gt; CSize
+</span><a href="#local-6989586621679075017"><span class="hs-identifier hs-var">byteslice</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">ByteSlice -&gt; CSize
 </span><a href="OpenDAL.FFI.html#bsLen"><span class="hs-identifier hs-var">bsLen</span></a></span><span> </span><span class="annot"><span class="annottext">ByteSlice
-</span><a href="#local-6989586621679074585"><span class="hs-identifier hs-var">byteslice</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075017"><span class="hs-identifier hs-var">byteslice</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-396"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074584"><span class="hs-identifier hs-var">byte</span></a></span><span>
+</span><a href="#local-6989586621679075016"><span class="hs-identifier hs-var">byte</span></a></span><span>
 </span><span id="line-397"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-398"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074578"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074578"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-398"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679075010"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679075010"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ByteSlice
-</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-399"></span><span>          </span><span id="local-6989586621679074577"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074577"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679075018"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-399"></span><span>          </span><span id="local-6989586621679075009"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075009"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ByteSlice
-</span><a href="#local-6989586621679074586"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679075018"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-400"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074578"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074577"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679075010"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075009"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-401"></span><span>
 </span><span id="line-402"></span><span class="hs-comment">-- | Write bytes into given path.</span><span>
 </span><span id="line-403"></span><span class="annot"><a href="OpenDAL.html#writeOpRaw"><span class="hs-identifier hs-type">writeOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/b [...]
 </span><span id="line-404"></span><span id="writeOpRaw"><span class="annot"><span class="annottext">writeOpRaw :: Operator -&gt; String -&gt; ByteString -&gt; IO (Either OpenDALError ())
-</span><a href="OpenDAL.html#writeOpRaw"><span class="hs-identifier hs-var hs-var">writeOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074576"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074576"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074575"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074575"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span id="local-6989586621679074574"><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074574"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#writeOpRaw"><span class="hs-identifier hs-var hs-var">writeOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679075008"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679075008"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679075007"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679075007"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span id="local-6989586621679075006"><span class="annot"><span class="annottext">ByteString
+</span><a href="#local-6989586621679075006"><span class="hs-identifier hs-var">byte</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074576"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074573"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074573"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075008"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075005"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679075005"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-405"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074575"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074572"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074572"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075007"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075004"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075004"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-406"></span><span>    </span><span class="annot"><span class="annottext">forall a. ByteString -&gt; (CStringLen -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bytestring-0.11.4.0/src"><span class="hs-identifier hs-var">BS.useAsCStringLen</span></a></span><span> </span><span class="annot"><span class="annottext">ByteString
-</span><a href="#local-6989586621679074574"><span class="hs-identifier hs-var">byte</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679074570"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074570"><span class="hs-identifier hs-var">cByte</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679074569"><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074569"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679075006"><span class="hs-identifier hs-var">byte</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679075002"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075002"><span class="hs-identifier hs-var">cByte</span></a></span></span><span class="hs-special">,</span><span> </span><span id="local-6989586621679075001"><span class="annot"><span class="annottext">Int
+</span><a href="#local-6989586621679075001"><span class="hs-identifier hs-var">len</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-407"></span><span>      </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074568"><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074568"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679075000"><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679075000"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-408"></span><span>        </span><span class="annot"><span class="annottext">Ptr RawOperator
 -&gt; CString -&gt; CString -&gt; CSize -&gt; Ptr (FFIResult ()) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_write"><span class="hs-identifier hs-var">c_blocking_write</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074573"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074572"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074570"><span class="hs-identifier hs-var">cByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
+</span><a href="#local-6989586621679075005"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075004"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679075002"><span class="hs-identifier hs-var">cByte</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">Int
-</span><a href="#local-6989586621679074569"><span class="hs-identifier hs-var">len</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074568"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-409"></span><span>        </span><span id="local-6989586621679074566"><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074566"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679075001"><span class="hs-identifier hs-var">len</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679075000"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-409"></span><span>        </span><span id="local-6989586621679074998"><span class="annot"><span class="annottext">FFIResult ()
+</span><a href="#local-6989586621679074998"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074568"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679075000"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-410"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074566"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074998"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-411"></span><span>          </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
@@ -1117,132 +1117,132 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
 </span><span id="line-412"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-413"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074563"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074563"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-413"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074995"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074995"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074566"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-414"></span><span>            </span><span id="local-6989586621679074562"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074562"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074998"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-414"></span><span>            </span><span id="local-6989586621679074994"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074994"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074566"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074998"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-415"></span><span>            </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074563"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074562"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074995"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074994"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-416"></span><span>
 </span><span id="line-417"></span><span class="hs-comment">-- | Check if this path exists or not.</span><span>
 </span><span id="line-418"></span><span class="annot"><a href="OpenDAL.html#isExistOpRaw"><span class="hs-identifier hs-type">isExistOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/librari [...]
 </span><span id="line-419"></span><span id="isExistOpRaw"><span class="annot"><span class="annottext">isExistOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError Bool)
-</span><a href="OpenDAL.html#isExistOpRaw"><span class="hs-identifier hs-var hs-var">isExistOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074561"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074561"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074560"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074560"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#isExistOpRaw"><span class="hs-identifier hs-var hs-var">isExistOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074993"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074993"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074992"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074992"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074561"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074559"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074559"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074993"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074991"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074991"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-420"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074560"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074558"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074558"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074992"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074990"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074990"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-421"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074557"><span class="annot"><span class="annottext">Ptr (FFIResult CBool)
-</span><a href="#local-6989586621679074557"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074989"><span class="annot"><span class="annottext">Ptr (FFIResult CBool)
+</span><a href="#local-6989586621679074989"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-422"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator -&gt; CString -&gt; Ptr (FFIResult CBool) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_is_exist"><span class="hs-identifier hs-var">c_blocking_is_exist</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074559"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074558"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CBool)
-</span><a href="#local-6989586621679074557"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-423"></span><span>      </span><span id="local-6989586621679074555"><span class="annot"><span class="annottext">FFIResult CBool
-</span><a href="#local-6989586621679074555"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074991"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074990"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CBool)
+</span><a href="#local-6989586621679074989"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-423"></span><span>      </span><span id="local-6989586621679074987"><span class="annot"><span class="annottext">FFIResult CBool
+</span><a href="#local-6989586621679074987"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CBool)
-</span><a href="#local-6989586621679074557"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074989"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-424"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CBool
-</span><a href="#local-6989586621679074555"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074987"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-425"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-426"></span><span>          </span><span id="local-6989586621679074554"><span class="annot"><span class="annottext">CBool
-</span><a href="#local-6989586621679074554"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-426"></span><span>          </span><span id="local-6989586621679074986"><span class="annot"><span class="annottext">CBool
+</span><a href="#local-6989586621679074986"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CBool
-</span><a href="#local-6989586621679074555"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-427"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074549"><span class="annot"><span class="annottext">isExist :: Bool
-</span><a href="#local-6989586621679074549"><span class="hs-identifier hs-var hs-var">isExist</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CBool
-</span><a href="#local-6989586621679074554"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074987"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-427"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074981"><span class="annot"><span class="annottext">isExist :: Bool
+</span><a href="#local-6989586621679074981"><span class="hs-identifier hs-var hs-var">isExist</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CBool
+</span><a href="#local-6989586621679074986"><span class="hs-identifier hs-var">val</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">/=</span></a></span><span> </span><span class="annot"><span class="annottext">CBool
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-428"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
-</span><a href="#local-6989586621679074549"><span class="hs-identifier hs-var">isExist</span></a></span><span>
+</span><a href="#local-6989586621679074981"><span class="hs-identifier hs-var">isExist</span></a></span><span>
 </span><span id="line-429"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-430"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074545"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074545"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-430"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074977"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074977"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CBool
-</span><a href="#local-6989586621679074555"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-431"></span><span>          </span><span id="local-6989586621679074544"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074544"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074987"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-431"></span><span>          </span><span id="local-6989586621679074976"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074976"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CBool
-</span><a href="#local-6989586621679074555"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074987"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-432"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074545"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074544"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074977"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074976"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-433"></span><span>
 </span><span id="line-434"></span><span class="hs-comment">-- | Create a dir at given path.</span><span>
 </span><span id="line-435"></span><span class="annot"><a href="OpenDAL.html#createDirOpRaw"><span class="hs-identifier hs-type">createDirOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/lib [...]
 </span><span id="line-436"></span><span id="createDirOpRaw"><span class="annot"><span class="annottext">createDirOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError ())
-</span><a href="OpenDAL.html#createDirOpRaw"><span class="hs-identifier hs-var hs-var">createDirOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074543"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074543"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074542"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074542"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#createDirOpRaw"><span class="hs-identifier hs-var hs-var">createDirOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074975"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074975"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074974"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074974"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074543"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074541"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074541"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074975"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074973"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074973"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-437"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074542"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074540"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074540"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074974"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074972"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074972"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-438"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074539"><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074539"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074971"><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074971"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-439"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator -&gt; CString -&gt; Ptr (FFIResult ()) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_create_dir"><span class="hs-identifier hs-var">c_blocking_create_dir</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074541"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074540"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074539"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-440"></span><span>      </span><span id="local-6989586621679074537"><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074537"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074973"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074972"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074971"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-440"></span><span>      </span><span id="local-6989586621679074969"><span class="annot"><span class="annottext">FFIResult ()
+</span><a href="#local-6989586621679074969"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074539"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074971"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-441"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074537"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074969"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-442"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
@@ -1250,67 +1250,67 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
 </span><span id="line-443"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-444"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074534"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074534"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-444"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074966"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074966"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074537"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-445"></span><span>          </span><span id="local-6989586621679074533"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074533"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074969"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-445"></span><span>          </span><span id="local-6989586621679074965"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074965"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074537"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074969"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-446"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074534"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074533"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074966"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074965"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-447"></span><span>
 </span><span id="line-448"></span><span class="hs-comment">-- | Copy a file from srcPath to dstPath.</span><span>
 </span><span id="line-449"></span><span class="annot"><a href="OpenDAL.html#copyOpRaw"><span class="hs-identifier hs-type">copyOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bas [...]
 </span><span id="line-450"></span><span id="copyOpRaw"><span class="annot"><span class="annottext">copyOpRaw :: Operator -&gt; String -&gt; String -&gt; IO (Either OpenDALError ())
-</span><a href="OpenDAL.html#copyOpRaw"><span class="hs-identifier hs-var hs-var">copyOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074532"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074532"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074531"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074531"><span class="hs-identifier hs-var">srcPath</span></a></span></span><span> </span><span id="local-6989586621679074530"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074530"><span class="hs-identifier hs-var">dstPath</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#copyOpRaw"><span class="hs-identifier hs-var hs-var">copyOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074964"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074964"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074963"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074963"><span class="hs-identifier hs-var">srcPath</span></a></span></span><span> </span><span id="local-6989586621679074962"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074962"><span class="hs-identifier hs-var">dstPath</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074532"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074529"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074529"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074964"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074961"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074961"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-451"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074531"><span class="hs-identifier hs-var">srcPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074528"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074528"><span class="hs-identifier hs-var">cSrcPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074963"><span class="hs-identifier hs-var">srcPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074960"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074960"><span class="hs-identifier hs-var">cSrcPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-452"></span><span>    </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074530"><span class="hs-identifier hs-var">dstPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074527"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074527"><span class="hs-identifier hs-var">cDstPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074962"><span class="hs-identifier hs-var">dstPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074959"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074959"><span class="hs-identifier hs-var">cDstPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-453"></span><span>      </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074526"><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074958"><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074958"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-454"></span><span>        </span><span class="annot"><span class="annottext">Ptr RawOperator
 -&gt; CString -&gt; CString -&gt; Ptr (FFIResult ()) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_copy"><span class="hs-identifier hs-var">c_blocking_copy</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074529"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074528"><span class="hs-identifier hs-var">cSrcPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074527"><span class="hs-identifier hs-var">cDstPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-455"></span><span>        </span><span id="local-6989586621679074524"><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074961"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074960"><span class="hs-identifier hs-var">cSrcPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074959"><span class="hs-identifier hs-var">cDstPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074958"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-455"></span><span>        </span><span id="local-6989586621679074956"><span class="annot"><span class="annottext">FFIResult ()
+</span><a href="#local-6989586621679074956"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074526"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074958"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-456"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074956"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-457"></span><span>          </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
@@ -1318,67 +1318,67 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
 </span><span id="line-458"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-459"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074521"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074521"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-459"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074953"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074953"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-460"></span><span>            </span><span id="local-6989586621679074520"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074520"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074956"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-460"></span><span>            </span><span id="local-6989586621679074952"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074952"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074524"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074956"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-461"></span><span>            </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074521"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074520"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074953"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074952"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-462"></span><span>
 </span><span id="line-463"></span><span class="hs-comment">-- | Rename a file from srcPath to dstPath.</span><span>
 </span><span id="line-464"></span><span class="annot"><a href="OpenDAL.html#renameOpRaw"><span class="hs-identifier hs-type">renameOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries [...]
 </span><span id="line-465"></span><span id="renameOpRaw"><span class="annot"><span class="annottext">renameOpRaw :: Operator -&gt; String -&gt; String -&gt; IO (Either OpenDALError ())
-</span><a href="OpenDAL.html#renameOpRaw"><span class="hs-identifier hs-var hs-var">renameOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074519"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074519"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074518"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074518"><span class="hs-identifier hs-var">srcPath</span></a></span></span><span> </span><span id="local-6989586621679074517"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074517"><span class="hs-identifier hs-var">dstPath</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#renameOpRaw"><span class="hs-identifier hs-var hs-var">renameOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074951"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074951"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074950"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074950"><span class="hs-identifier hs-var">srcPath</span></a></span></span><span> </span><span id="local-6989586621679074949"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074949"><span class="hs-identifier hs-var">dstPath</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074519"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074516"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074516"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074951"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074948"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074948"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-466"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074518"><span class="hs-identifier hs-var">srcPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074515"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074515"><span class="hs-identifier hs-var">cSrcPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074950"><span class="hs-identifier hs-var">srcPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074947"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074947"><span class="hs-identifier hs-var">cSrcPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-467"></span><span>    </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074517"><span class="hs-identifier hs-var">dstPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074514"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074514"><span class="hs-identifier hs-var">cDstPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074949"><span class="hs-identifier hs-var">dstPath</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074946"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074946"><span class="hs-identifier hs-var">cDstPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-468"></span><span>      </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074513"><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074945"><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074945"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-469"></span><span>        </span><span class="annot"><span class="annottext">Ptr RawOperator
 -&gt; CString -&gt; CString -&gt; Ptr (FFIResult ()) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_rename"><span class="hs-identifier hs-var">c_blocking_rename</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074516"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074515"><span class="hs-identifier hs-var">cSrcPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074514"><span class="hs-identifier hs-var">cDstPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-470"></span><span>        </span><span id="local-6989586621679074511"><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074948"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074947"><span class="hs-identifier hs-var">cSrcPath</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074946"><span class="hs-identifier hs-var">cDstPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074945"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-470"></span><span>        </span><span id="local-6989586621679074943"><span class="annot"><span class="annottext">FFIResult ()
+</span><a href="#local-6989586621679074943"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074513"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074945"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-471"></span><span>        </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074943"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-472"></span><span>          </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
@@ -1386,59 +1386,59 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
 </span><span id="line-473"></span><span>          </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-474"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074508"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074508"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-474"></span><span>            </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074940"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074940"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-475"></span><span>            </span><span id="local-6989586621679074507"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074507"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074943"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-475"></span><span>            </span><span id="local-6989586621679074939"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074939"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074511"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074943"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-476"></span><span>            </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074508"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074507"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074940"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074939"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-477"></span><span>
 </span><span id="line-478"></span><span class="hs-comment">-- | Delete given path.</span><span>
 </span><span id="line-479"></span><span class="annot"><a href="OpenDAL.html#deleteOpRaw"><span class="hs-identifier hs-type">deleteOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries [...]
 </span><span id="line-480"></span><span id="deleteOpRaw"><span class="annot"><span class="annottext">deleteOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError ())
-</span><a href="OpenDAL.html#deleteOpRaw"><span class="hs-identifier hs-var hs-var">deleteOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074506"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074506"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074505"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074505"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#deleteOpRaw"><span class="hs-identifier hs-var hs-var">deleteOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074938"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074938"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074937"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074937"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074506"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074504"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074504"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074938"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074936"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074936"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-481"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074505"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074503"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074503"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074937"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074935"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074935"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-482"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074502"><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074502"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074934"><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074934"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-483"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator -&gt; CString -&gt; Ptr (FFIResult ()) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_delete"><span class="hs-identifier hs-var">c_blocking_delete</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074504"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074503"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074502"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-484"></span><span>      </span><span id="local-6989586621679074500"><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074500"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074936"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074935"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
+</span><a href="#local-6989586621679074934"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-484"></span><span>      </span><span id="local-6989586621679074932"><span class="annot"><span class="annottext">FFIResult ()
+</span><a href="#local-6989586621679074932"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult ())
-</span><a href="#local-6989586621679074502"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074934"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-485"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074500"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074932"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-486"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
@@ -1446,314 +1446,314 @@ LogAction IO (Msg sev) -&gt; a -&gt; CString -&gt; IO ()
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
 </span><span id="line-487"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-488"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074497"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074497"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-488"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074929"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074929"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074500"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-489"></span><span>          </span><span id="local-6989586621679074496"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074496"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074932"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-489"></span><span>          </span><span id="local-6989586621679074928"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074928"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult ()
-</span><a href="#local-6989586621679074500"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074932"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-490"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074497"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074496"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074929"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074928"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-491"></span><span>
 </span><span id="line-492"></span><span class="hs-comment">-- | Get given path&#8217;s metadata without cache directly.</span><span>
 </span><span id="line-493"></span><span class="annot"><a href="OpenDAL.html#statOpRaw"><span class="hs-identifier hs-type">statOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bas [...]
 </span><span id="line-494"></span><span id="statOpRaw"><span class="annot"><span class="annottext">statOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError Metadata)
-</span><a href="OpenDAL.html#statOpRaw"><span class="hs-identifier hs-var hs-var">statOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074495"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074495"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074494"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074494"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#statOpRaw"><span class="hs-identifier hs-var hs-var">statOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074927"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074927"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074926"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074926"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074495"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074493"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074493"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074927"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074925"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074925"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-495"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074494"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074492"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074492"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074926"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074924"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074924"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-496"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074491"><span class="annot"><span class="annottext">Ptr (FFIResult FFIMetadata)
-</span><a href="#local-6989586621679074491"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074923"><span class="annot"><span class="annottext">Ptr (FFIResult FFIMetadata)
+</span><a href="#local-6989586621679074923"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-497"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator -&gt; CString -&gt; Ptr (FFIResult FFIMetadata) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_stat"><span class="hs-identifier hs-var">c_blocking_stat</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074493"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074492"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult FFIMetadata)
-</span><a href="#local-6989586621679074491"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-498"></span><span>      </span><span id="local-6989586621679074489"><span class="annot"><span class="annottext">FFIResult FFIMetadata
-</span><a href="#local-6989586621679074489"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074925"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074924"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult FFIMetadata)
+</span><a href="#local-6989586621679074923"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-498"></span><span>      </span><span id="local-6989586621679074921"><span class="annot"><span class="annottext">FFIResult FFIMetadata
+</span><a href="#local-6989586621679074921"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult FFIMetadata)
-</span><a href="#local-6989586621679074491"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074923"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-499"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult FFIMetadata
-</span><a href="#local-6989586621679074489"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074921"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-500"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-501"></span><span>          </span><span id="local-6989586621679074488"><span class="annot"><span class="annottext">FFIMetadata
-</span><a href="#local-6989586621679074488"><span class="hs-identifier hs-var">ffimatadata</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-501"></span><span>          </span><span id="local-6989586621679074920"><span class="annot"><span class="annottext">FFIMetadata
+</span><a href="#local-6989586621679074920"><span class="hs-identifier hs-var">ffimatadata</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult FFIMetadata
-</span><a href="#local-6989586621679074489"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-502"></span><span>          </span><span id="local-6989586621679074487"><span class="annot"><span class="annottext">Metadata
-</span><a href="#local-6989586621679074487"><span class="hs-identifier hs-var">metadata</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">FFIMetadata -&gt; IO Metadata
+</span><a href="#local-6989586621679074921"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-502"></span><span>          </span><span id="local-6989586621679074919"><span class="annot"><span class="annottext">Metadata
+</span><a href="#local-6989586621679074919"><span class="hs-identifier hs-var">metadata</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">FFIMetadata -&gt; IO Metadata
 </span><a href="OpenDAL.html#parseFFIMetadata"><span class="hs-identifier hs-var">parseFFIMetadata</span></a></span><span> </span><span class="annot"><span class="annottext">FFIMetadata
-</span><a href="#local-6989586621679074488"><span class="hs-identifier hs-var">ffimatadata</span></a></span><span>
+</span><a href="#local-6989586621679074920"><span class="hs-identifier hs-var">ffimatadata</span></a></span><span>
 </span><span id="line-503"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">Metadata
-</span><a href="#local-6989586621679074487"><span class="hs-identifier hs-var">metadata</span></a></span><span>
+</span><a href="#local-6989586621679074919"><span class="hs-identifier hs-var">metadata</span></a></span><span>
 </span><span id="line-504"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-505"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074484"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074484"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-505"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074916"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074916"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult FFIMetadata
-</span><a href="#local-6989586621679074489"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-506"></span><span>          </span><span id="local-6989586621679074483"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074483"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074921"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-506"></span><span>          </span><span id="local-6989586621679074915"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074915"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult FFIMetadata
-</span><a href="#local-6989586621679074489"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074921"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-507"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074484"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074483"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074916"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074915"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-508"></span><span>
 </span><span id="line-509"></span><span class="hs-comment">-- | List current dir path.</span><span>
 </span><span id="line-510"></span><span class="hs-comment">-- This function will create a new handle to list entries.</span><span>
 </span><span id="line-511"></span><span class="hs-comment">-- An error will be returned if path doesn&#8217;t end with /.</span><span>
 </span><span id="line-512"></span><span class="annot"><a href="OpenDAL.html#listOpRaw"><span class="hs-identifier hs-type">listOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bas [...]
 </span><span id="line-513"></span><span id="listOpRaw"><span class="annot"><span class="annottext">listOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError Lister)
-</span><a href="OpenDAL.html#listOpRaw"><span class="hs-identifier hs-var hs-var">listOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074482"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074482"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074481"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074481"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#listOpRaw"><span class="hs-identifier hs-var hs-var">listOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074914"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074914"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074913"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074913"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074482"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074480"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074480"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074914"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074912"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074912"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-514"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074481"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074479"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074479"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074913"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074911"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074911"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-515"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074478"><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074478"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074910"><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
+</span><a href="#local-6989586621679074910"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-516"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator
 -&gt; CString -&gt; Ptr (FFIResult (Ptr RawLister)) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_list"><span class="hs-identifier hs-var">c_blocking_list</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074480"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074479"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074478"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-517"></span><span>      </span><span id="local-6989586621679074476"><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074476"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074912"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074911"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
+</span><a href="#local-6989586621679074910"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-517"></span><span>      </span><span id="local-6989586621679074908"><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
+</span><a href="#local-6989586621679074908"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074478"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074910"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-518"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074476"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074908"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-519"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-520"></span><span>          </span><span id="local-6989586621679074475"><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074475"><span class="hs-identifier hs-var">ffilister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-520"></span><span>          </span><span id="local-6989586621679074907"><span class="annot"><span class="annottext">Ptr RawLister
+</span><a href="#local-6989586621679074907"><span class="hs-identifier hs-var">ffilister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074476"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-521"></span><span>          </span><span id="local-6989586621679074474"><span class="annot"><span class="annottext">Lister
-</span><a href="#local-6989586621679074474"><span class="hs-identifier hs-var">lister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawLister -&gt; Lister
+</span><a href="#local-6989586621679074908"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-521"></span><span>          </span><span id="local-6989586621679074906"><span class="annot"><span class="annottext">Lister
+</span><a href="#local-6989586621679074906"><span class="hs-identifier hs-var">lister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawLister -&gt; Lister
 </span><a href="OpenDAL.html#Lister"><span class="hs-identifier hs-var">Lister</span></a></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FinalizerPtr a -&gt; Ptr a -&gt; IO (ForeignPtr a)
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">newForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FunPtr (Ptr RawLister -&gt; IO ())
 </span><a href="OpenDAL.FFI.html#c_free_lister"><span class="hs-identifier hs-var">c_free_lister</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074475"><span class="hs-identifier hs-var">ffilister</span></a></span><span>
+</span><a href="#local-6989586621679074907"><span class="hs-identifier hs-var">ffilister</span></a></span><span>
 </span><span id="line-522"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">Lister
-</span><a href="#local-6989586621679074474"><span class="hs-identifier hs-var">lister</span></a></span><span>
+</span><a href="#local-6989586621679074906"><span class="hs-identifier hs-var">lister</span></a></span><span>
 </span><span id="line-523"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-524"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074470"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074470"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-524"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074902"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074902"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074476"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-525"></span><span>          </span><span id="local-6989586621679074469"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074469"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074908"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-525"></span><span>          </span><span id="local-6989586621679074901"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074901"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074476"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074908"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-526"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074470"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074469"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074902"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074901"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-527"></span><span>
 </span><span id="line-528"></span><span class="hs-comment">-- | List dir in flat way.</span><span>
 </span><span id="line-529"></span><span class="hs-comment">-- Also, this function can be used to list a prefix.</span><span>
 </span><span id="line-530"></span><span class="hs-comment">-- An error will be returned if given path doesn&#8217;t end with /.</span><span>
 </span><span id="line-531"></span><span class="annot"><a href="OpenDAL.html#scanOpRaw"><span class="hs-identifier hs-type">scanOpRaw</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/bas [...]
 </span><span id="line-532"></span><span id="scanOpRaw"><span class="annot"><span class="annottext">scanOpRaw :: Operator -&gt; String -&gt; IO (Either OpenDALError Lister)
-</span><a href="OpenDAL.html#scanOpRaw"><span class="hs-identifier hs-var hs-var">scanOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074468"><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074468"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074467"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074467"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#scanOpRaw"><span class="hs-identifier hs-var hs-var">scanOpRaw</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Operator"><span class="hs-identifier hs-type">Operator</span></a></span><span> </span><span id="local-6989586621679074900"><span class="annot"><span class="annottext">ForeignPtr RawOperator
+</span><a href="#local-6989586621679074900"><span class="hs-identifier hs-var">op</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679074899"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074899"><span class="hs-identifier hs-var">path</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawOperator
-</span><a href="#local-6989586621679074468"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074466"><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074466"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074900"><span class="hs-identifier hs-var">op</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074898"><span class="annot"><span class="annottext">Ptr RawOperator
+</span><a href="#local-6989586621679074898"><span class="hs-identifier hs-var">opptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-533"></span><span>  </span><span class="annot"><span class="annottext">forall a. String -&gt; (CString -&gt; IO a) -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withCString</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074467"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074465"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074465"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074899"><span class="hs-identifier hs-var">path</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074897"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074897"><span class="hs-identifier hs-var">cPath</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-534"></span><span>    </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074464"><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074464"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074896"><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
+</span><a href="#local-6989586621679074896"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-535"></span><span>      </span><span class="annot"><span class="annottext">Ptr RawOperator
 -&gt; CString -&gt; Ptr (FFIResult (Ptr RawLister)) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_blocking_scan"><span class="hs-identifier hs-var">c_blocking_scan</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawOperator
-</span><a href="#local-6989586621679074466"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074465"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074464"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-536"></span><span>      </span><span id="local-6989586621679074462"><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074462"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074898"><span class="hs-identifier hs-var">opptr</span></a></span><span> </span><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074897"><span class="hs-identifier hs-var">cPath</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
+</span><a href="#local-6989586621679074896"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-536"></span><span>      </span><span id="local-6989586621679074894"><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
+</span><a href="#local-6989586621679074894"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult (Ptr RawLister))
-</span><a href="#local-6989586621679074464"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074896"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-537"></span><span>      </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074462"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074894"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-538"></span><span>        </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-539"></span><span>          </span><span id="local-6989586621679074461"><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074461"><span class="hs-identifier hs-var">ffilister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-539"></span><span>          </span><span id="local-6989586621679074893"><span class="annot"><span class="annottext">Ptr RawLister
+</span><a href="#local-6989586621679074893"><span class="hs-identifier hs-var">ffilister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074462"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-540"></span><span>          </span><span id="local-6989586621679074460"><span class="annot"><span class="annottext">Lister
-</span><a href="#local-6989586621679074460"><span class="hs-identifier hs-var">lister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawLister -&gt; Lister
+</span><a href="#local-6989586621679074894"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-540"></span><span>          </span><span id="local-6989586621679074892"><span class="annot"><span class="annottext">Lister
+</span><a href="#local-6989586621679074892"><span class="hs-identifier hs-var">lister</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawLister -&gt; Lister
 </span><a href="OpenDAL.html#Lister"><span class="hs-identifier hs-var">Lister</span></a></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FinalizerPtr a -&gt; Ptr a -&gt; IO (ForeignPtr a)
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">newForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FunPtr (Ptr RawLister -&gt; IO ())
 </span><a href="OpenDAL.FFI.html#c_free_lister"><span class="hs-identifier hs-var">c_free_lister</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074461"><span class="hs-identifier hs-var">ffilister</span></a></span><span>
+</span><a href="#local-6989586621679074893"><span class="hs-identifier hs-var">ffilister</span></a></span><span>
 </span><span id="line-541"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">Lister
-</span><a href="#local-6989586621679074460"><span class="hs-identifier hs-var">lister</span></a></span><span>
+</span><a href="#local-6989586621679074892"><span class="hs-identifier hs-var">lister</span></a></span><span>
 </span><span id="line-542"></span><span>        </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-543"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074457"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074457"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-543"></span><span>          </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074889"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074889"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074462"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-544"></span><span>          </span><span id="local-6989586621679074456"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074456"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074894"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-544"></span><span>          </span><span id="local-6989586621679074888"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074888"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult (Ptr RawLister)
-</span><a href="#local-6989586621679074462"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074894"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-545"></span><span>          </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074457"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074456"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074889"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074888"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-546"></span><span>
 </span><span id="line-547"></span><span class="hs-comment">-- | Get next entry path from `Lister`.</span><span>
 </span><span id="line-548"></span><span class="annot"><a href="OpenDAL.html#nextLister"><span class="hs-identifier hs-type">nextLister</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="OpenDAL.html#Lister"><span class="hs-identifier hs-type">Lister</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-p [...]
 </span><span id="line-549"></span><span id="nextLister"><span class="annot"><span class="annottext">nextLister :: Lister -&gt; IO (Either OpenDALError (Maybe String))
-</span><a href="OpenDAL.html#nextLister"><span class="hs-identifier hs-var hs-var">nextLister</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Lister"><span class="hs-identifier hs-type">Lister</span></a></span><span> </span><span id="local-6989586621679074455"><span class="annot"><span class="annottext">ForeignPtr RawLister
-</span><a href="#local-6989586621679074455"><span class="hs-identifier hs-var">lister</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
+</span><a href="OpenDAL.html#nextLister"><span class="hs-identifier hs-var hs-var">nextLister</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="OpenDAL.html#Lister"><span class="hs-identifier hs-type">Lister</span></a></span><span> </span><span id="local-6989586621679074887"><span class="annot"><span class="annottext">ForeignPtr RawLister
+</span><a href="#local-6989586621679074887"><span class="hs-identifier hs-var">lister</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">forall a b. ForeignPtr a -&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">withForeignPtr</span></a></span><span> </span><span class="annot"><span class="annottext">ForeignPtr RawLister
-</span><a href="#local-6989586621679074455"><span class="hs-identifier hs-var">lister</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074454"><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074454"><span class="hs-identifier hs-var">listerptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
+</span><a href="#local-6989586621679074887"><span class="hs-identifier hs-var">lister</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074886"><span class="annot"><span class="annottext">Ptr RawLister
+</span><a href="#local-6989586621679074886"><span class="hs-identifier hs-var">listerptr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span>
 </span><span id="line-550"></span><span>  </span><span class="annot"><span class="annottext">forall a b. Storable a =&gt; (Ptr a -&gt; IO b) -&gt; IO b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">alloca</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
-</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074453"><span class="annot"><span class="annottext">Ptr (FFIResult CString)
-</span><a href="#local-6989586621679074453"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
+</span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679074885"><span class="annot"><span class="annottext">Ptr (FFIResult CString)
+</span><a href="#local-6989586621679074885"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
 </span><span id="line-551"></span><span>    </span><span class="annot"><span class="annottext">Ptr RawLister -&gt; Ptr (FFIResult CString) -&gt; IO ()
 </span><a href="OpenDAL.FFI.html#c_lister_next"><span class="hs-identifier hs-var">c_lister_next</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr RawLister
-</span><a href="#local-6989586621679074454"><span class="hs-identifier hs-var">listerptr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CString)
-</span><a href="#local-6989586621679074453"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
-</span><span id="line-552"></span><span>    </span><span id="local-6989586621679074451"><span class="annot"><span class="annottext">FFIResult CString
-</span><a href="#local-6989586621679074451"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><a href="#local-6989586621679074886"><span class="hs-identifier hs-var">listerptr</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CString)
+</span><a href="#local-6989586621679074885"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><span id="line-552"></span><span>    </span><span id="local-6989586621679074883"><span class="annot"><span class="annottext">FFIResult CString
+</span><a href="#local-6989586621679074883"><span class="hs-identifier hs-var">ffiResult</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">Ptr (FFIResult CString)
-</span><a href="#local-6989586621679074453"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
+</span><a href="#local-6989586621679074885"><span class="hs-identifier hs-var">ffiResultPtr</span></a></span><span>
 </span><span id="line-553"></span><span>    </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CString
-</span><a href="#local-6989586621679074451"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
+</span><a href="#local-6989586621679074883"><span class="hs-identifier hs-var">ffiResult</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. Eq a =&gt; a -&gt; a -&gt; Bool
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/ghc-prim-0.8.0/src"><span class="hs-operator hs-var">==</span></a></span><span> </span><span class="annot"><span class="annottext">CUInt
 </span><span class="hs-number">0</span></span><span>
 </span><span id="line-554"></span><span>      </span><span class="hs-keyword">then</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-555"></span><span>        </span><span id="local-6989586621679074450"><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074450"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
+</span><span id="line-555"></span><span>        </span><span id="local-6989586621679074882"><span class="annot"><span class="annottext">CString
+</span><a href="#local-6989586621679074882"><span class="hs-identifier hs-var">val</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">forall a. Storable a =&gt; Ptr a -&gt; IO a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peek</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; Ptr a
 </span><a href="OpenDAL.FFI.html#dataPtr"><span class="hs-identifier hs-var">dataPtr</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CString
-</span><a href="#local-6989586621679074451"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><a href="#local-6989586621679074883"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
 </span><span id="line-556"></span><span>        </span><span class="annot"><span class="annottext">forall a b. b -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">forall (f :: * -&gt; *) a b. Functor f =&gt; (a -&gt; b) -&gt; f a -&gt; f b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">&lt;$&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO (Maybe String)
 </span><a href="OpenDAL.html#parseCString"><span class="hs-identifier hs-var">parseCString</span></a></span><span> </span><span class="annot"><span class="annottext">CString
-</span><a href="#local-6989586621679074450"><span class="hs-identifier hs-var">val</span></a></span><span>
+</span><a href="#local-6989586621679074882"><span class="hs-identifier hs-var">val</span></a></span><span>
 </span><span id="line-557"></span><span>      </span><span class="hs-keyword">else</span><span> </span><span class="hs-keyword">do</span><span>
-</span><span id="line-558"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074447"><span class="annot"><span class="annottext">code :: ErrorCode
-</span><a href="#local-6989586621679074447"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
+</span><span id="line-558"></span><span>        </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679074879"><span class="annot"><span class="annottext">code :: ErrorCode
+</span><a href="#local-6989586621679074879"><span class="hs-identifier hs-var hs-var">code</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; ErrorCode
 </span><a href="OpenDAL.html#parseErrorCode"><span class="hs-identifier hs-var">parseErrorCode</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (Integral a, Num b) =&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">fromIntegral</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CUInt
 </span><a href="OpenDAL.FFI.html#ffiCode"><span class="hs-identifier hs-var">ffiCode</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CString
-</span><a href="#local-6989586621679074451"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
-</span><span id="line-559"></span><span>        </span><span id="local-6989586621679074446"><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074446"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
+</span><a href="#local-6989586621679074883"><span class="hs-identifier hs-var">ffiResult</span></a></span><span>
+</span><span id="line-559"></span><span>        </span><span id="local-6989586621679074878"><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074878"><span class="hs-identifier hs-var">errMsg</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CString -&gt; IO String
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">peekCString</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">forall a. FFIResult a -&gt; CString
 </span><a href="OpenDAL.FFI.html#errorMessage"><span class="hs-identifier hs-var">errorMessage</span></a></span><span> </span><span class="annot"><span class="annottext">FFIResult CString
-</span><a href="#local-6989586621679074451"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
+</span><a href="#local-6989586621679074883"><span class="hs-identifier hs-var">ffiResult</span></a></span><span class="hs-special">)</span><span>
 </span><span id="line-560"></span><span>        </span><span class="annot"><span class="annottext">forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. a -&gt; Either a b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">forall a b. (a -&gt; b) -&gt; a -&gt; b
 </span><a href="../file:///usr/local/.ghcup/ghc/9.2.8/share/doc/ghc-9.2.8/html/libraries/base-4.16.4.0/src"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode -&gt; String -&gt; OpenDALError
 </span><a href="OpenDAL.html#OpenDALError"><span class="hs-identifier hs-var">OpenDALError</span></a></span><span> </span><span class="annot"><span class="annottext">ErrorCode
-</span><a href="#local-6989586621679074447"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
-</span><a href="#local-6989586621679074446"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
+</span><a href="#local-6989586621679074879"><span class="hs-identifier hs-var">code</span></a></span><span> </span><span class="annot"><span class="annottext">String
+</span><a href="#local-6989586621679074878"><span class="hs-identifier hs-var">errMsg</span></a></span><span>
 </span><span id="line-561"></span></pre></body></html>
\ No newline at end of file
diff --git a/docs/integrations/object_store_opendal/index.html b/docs/integrations/object_store_opendal/index.html
index 3749596295..f6a008d865 100644
--- a/docs/integrations/object_store_opendal/index.html
+++ b/docs/integrations/object_store_opendal/index.html
@@ -5,14 +5,14 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">object_store_opendal | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/integrations/object_store_opendal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
 <!-- -->
 <!-- -->
 <h1>OpenDAL object_store Binding</h1>
-<p>This crate intends to build an <a href="https://crates.io/crates/object_store" target="_blank" rel="noopener noreferrer">object_store</a> binding.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/integrations/object_store_opendal.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width [...]
+<p>This crate intends to build an <a href="https://crates.io/crates/object_store" target="_blank" rel="noopener noreferrer">object_store</a> binding.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/integrations/object_store_opendal.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index 76505785fb..e691482d44 100644
--- a/docs/lua/classes/opendal.metadata.html
+++ b/docs/lua/classes/opendal.metadata.html
@@ -138,7 +138,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-04-02 01:50:54 </i>
+<i style="float:right;">Last updated 2024-04-04 12:13:09 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/lua/classes/opendal.operator.html b/docs/lua/classes/opendal.operator.html
index f6af4fefbf..7006c6c833 100644
--- a/docs/lua/classes/opendal.operator.html
+++ b/docs/lua/classes/opendal.operator.html
@@ -321,7 +321,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-04-02 01:50:54 </i>
+<i style="float:right;">Last updated 2024-04-04 12:13:09 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index 3a156eeefc..2d788b7760 100644
--- a/docs/lua/index.html
+++ b/docs/lua/index.html
@@ -57,7 +57,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2024-04-02 01:50:54 </i>
+<i style="float:right;">Last updated 2024-04-04 12:13:09 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index b27b88f616..3610da6881 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingLister | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingLister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingReader.html b/docs/nodejs/classes/BlockingReader.html
index 84100a39d5..900db0d47f 100644
--- a/docs/nodejs/classes/BlockingReader.html
+++ b/docs/nodejs/classes/BlockingReader.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingReader | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L546">generated.d.ts:546</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingReader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
 <a href="BlockingReader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingWriter.html b/docs/nodejs/classes/BlockingWriter.html
index 8fa6ec789d..e3d71e7425 100644
--- a/docs/nodejs/classes/BlockingWriter.html
+++ b/docs/nodejs/classes/BlockingWriter.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingWriter | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L567">generated.d.ts:567</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingWriter.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
 <a href="BlockingWriter.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
 <a href="BlockingWriter.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
 <p>Close this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writerSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">writer</span><span class="hl-1 [...]
 </code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L598">generated.d.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Write bytes into this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Capability.html b/docs/nodejs/classes/Capability.html
index 40486f12ba..f1d3afab2c 100644
--- a/docs/nodejs/classes/Capability.html
+++ b/docs/nodejs/classes/Capability.html
@@ -7,7 +7,7 @@ by current Operator.</p>
 <li>What&#39;s current Operator max supports batch operations count.</li>
 </ul>
 <p>Add fields of Capabilities with be public and can be accessed directly.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Capability.html#batch" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch</span></a>
 <a href="Capability.html#batchDelete" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Delete</span></a>
 <a href="Capability.html#batchMaxOperations" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Max<wbr/>Operations</span></a>
@@ -45,43 +45,43 @@ by current Operator.</p>
 <a href="Capability.html#writeWithContentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Disposition</span></a>
 <a href="Capability.html#writeWithContentType" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Type</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Cap [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#create [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="# [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L64">generated.d.ts:64</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L66">generated.d.ts:66</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L68">generated.d.ts:68</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>O [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L70">generated.d.ts:70</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L72">generated.d.ts:72</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>Ov [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L74">generated.d.ts:74</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label=" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Match< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>No [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Per [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L76">generated.d.ts:76</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L82">generated.d.ts:82</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L80">generated.d.ts:80</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a h [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L78">generated.d.ts:78</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align<wb [...]
 <p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L106">generated.d.ts:106</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
 <p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L94">generated.d.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" c [...]
 <p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
 <p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L112">generated.d.ts:112</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L88">generated.d.ts:88</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>C [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L86">generated.d.ts:86</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Content< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L84">generated.d.ts:84</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class= [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index c1de27dd66..7896deece1 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Entry | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script as [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L515">generated.d.ts:515</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Entry.html#path" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>path</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ent [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L517">generated.d.ts:517</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/ExternalObject.html b/docs/nodejs/classes/ExternalObject.html
index 02190cb241..b92c049e78 100644
--- a/docs/nodejs/classes/ExternalObject.html
+++ b/docs/nodejs/classes/ExternalObject.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script>< [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="ExternalObject.html#reflection-5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span><em>Property</em></span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Layer.html b/docs/nodejs/classes/Layer.html
index 20b620579d..7c676f34b2 100644
--- a/docs/nodejs/classes/Layer.html
+++ b/docs/nodejs/classes/Layer.html
@@ -1,3 +1,3 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Layer | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script as [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L659">generated.d.ts:659</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lay [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index 5d72dd1da3..36019ca6df 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lister | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L640">generated.d.ts:640</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Lister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lis [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>napi will make sure the function is safe, and we didn&#39;t do unsafe
 thing internally.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71 [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/55 [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index 518a2bf4c2..3bdaac1095 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Metadata | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L520">generated.d.ts:520</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Metadata.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Disposition</span></a>
 <a href="Metadata.html#contentLength" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Length</span></a>
 <a href="Metadata.html#contentMd5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Md5</span></a>
@@ -9,12 +9,12 @@
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Metadata.html#isDirectory" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>Directory</span></a>
 <a href="Metadata.html#isFile" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>File</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Met [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L526">generated.d.ts:526</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L528">generated.d.ts:528</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L530">generated.d.ts:530</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L532">generated.d.ts:532</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L534">generated.d.ts:534</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
 <p>We will output this time in RFC3339 format like <code>1996-12-19T16:39:57+08:00</code>.</p>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L540">generated.d.ts:540</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L522">generated.d.ts:522</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L524">generated.d.ts:524</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 7f92b26b05..727abb3047 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Operator.html#append" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>append</span></a>
 <a href="Operator.html#capability" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>capability</span></a>
 <a href="Operator.html#check" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>check</span></a>
@@ -31,45 +31,45 @@
 <a href="Operator.html#writer" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer</span></a>
 <a href="Operator.html#writerSync" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>writer<wbr/>Sync</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ope [...]
-</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
+</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L148">generated.d.ts:148</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2>Methods</h2><section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>append</span><a href="#append" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24 [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><ul>
 <li>It always appends content to the end of the file.</li>
 <li>It will create file if the path not exists.</li>
 </ul>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">append</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><sp [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
-</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L150">generated.d.ts:150</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>check</ [...]
 <p>We will send a <code>list</code> request to path and return any errors we met.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">check</span><span class="hl-1">();</span>
 </code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L193">generated.d.ts:193</a></li></ul></aside></li></ul></section><section class [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copy</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-s [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">copySync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDir</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">createDirSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generat [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Delete not existing error won’t return errors.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">delete</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">deleteSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generat [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExist</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd- [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">isExistSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/gene [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol">&lt;</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol">&lt;</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
 <p>This function will return an array of entries.</p>
 <p>An error will be returned if given path doesn&#39;t end with <code>/</code>.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span><br/ [...]
@@ -77,7 +77,7 @@
 <a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
 <pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
 <p>This function will return a array of entries.</p>
 <p>An error will be returned if given path doesn&#39;t end with <code>/</code>.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span><br/><span class="hl-4">for</span><span class="hl-1"> (</s [...]
@@ -85,45 +85,45 @@
 <a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
 <pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">, { </span><span class="hl-5">recursive:</span><span class="hl-1"> </span><span class="hl-6">true</span><span class="hl-1"> });</span><br/><span class= [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
 <p>Unit of expires is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignRead</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
 <p>Unit of expires is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignStat</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0" [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
 <p>Unit of expires is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">presignWrite</span><span class="hl-1">(</span><span class="hl-5">path</span><span class="hl-1">, </span><span class="hl-0 [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../i [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">read</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd- [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">readSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/gene [...]
 <p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
 <p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
 <a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">([</span><span class="hl-2">&quot;abc&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;def&quot;</span><span class="hl-1">]);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&g [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
 <a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">removeAll</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typ [...]
 <p>It&#39;s similar to <code>mv</code> command.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">rename</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-s [...]
 <p>It&#39;s similar to <code>mv</code> command.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">renameSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Use stat if you:</p>
 <ul>
 <li>Want detect the outside changes of path.</li>
@@ -132,17 +132,17 @@
 <p>You may want to use <code>metadata</code> if you are working with entries returned by <code>Lister</code>. It’s highly possible that metadata you want has already been cached.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">stat</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span><br/><span c [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">&gt;</span></ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">&gt;</span></ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">statSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span><br/><span class="hl-4">if</span><span class="hl-1"> (</span><span [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">write</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><spa [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writeSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-5">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span cla [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="ts [...]
 <p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Writer.html" class="tsd-signature-type tsd-kind-class">Writer</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
 <p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="BlockingWriter.html" class="tsd-signature-type tsd-kind-class">BlockingWriter</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Reader.html b/docs/nodejs/classes/Reader.html
index 8aad8450b5..fa25960ff1 100644
--- a/docs/nodejs/classes/Reader.html
+++ b/docs/nodejs/classes/Reader.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Reader | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L553">generated.d.ts:553</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Reader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
 <a href="Reader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Rea [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Read bytes from this reader into given buffer.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</span>: <span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">bigint</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/RetryLayer.html b/docs/nodejs/classes/RetryLayer.html
index 5c2ff140c1..58bef2c09d 100644
--- a/docs/nodejs/classes/RetryLayer.html
+++ b/docs/nodejs/classes/RetryLayer.html
@@ -6,27 +6,27 @@ returns true. If operation still failed, this layer will set error to
 <p><code>write</code> and <code>blocking_write</code> don&#39;t support retry so far, visit <a href="https://github.com/apache/opendal/issues/1223">this issue</a> for more details.</p>
 <a id="md:examples" class="tsd-anchor"></a><h1><a href="#md:examples">Examples</a></h1><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">op</span><span class="hl-1"> = </span><span class="hl-6">new</span><span class="hl-1"> </span><span class="hl-0">Operator</span><span class="hl-1">(</span><span class="hl-2">&quot;file&quot;</span><span class="hl-1">, { </span><span class="hl-5">root:</span><span class="hl-1"> </span><spa [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="RetryLayer.html#factor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>factor</span></a>
 <a href="RetryLayer.html#jitter" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>jitter</span></a>
 <a href="RetryLayer.html#maxDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Delay</span></a>
 <a href="RetryLayer.html#maxTimes" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Times</span></a>
 <a href="RetryLayer.html#minDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>min<wbr/>Delay</span></a>
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="RetryLayer.html#build" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>build</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
 <a id="md:panics" class="tsd-anchor"></a><h1><a href="#md:panics">Panics</a></h1><p>This function will panic if input factor smaller than <code>1.0</code>.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated. [...]
 <p>If jitter is enabled, ExponentialBackoff will add a random jitter in `[0, min_delay)
 to current delay.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated [...]
 <p>Delay will not increasing if current delay is larger than max_delay.</p>
 <a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
 <li>The unit of max_delay is millisecond.</li>
 </ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated. [...]
 <p>Backoff will return <code>None</code> if max times is reaching.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated. [...]
 <a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
 <li>The unit of min_delay is millisecond.</li>
 </ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated. [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated. [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Writer.html b/docs/nodejs/classes/Writer.html
index decf067b0a..312aaeed92 100644
--- a/docs/nodejs/classes/Writer.html
+++ b/docs/nodejs/classes/Writer.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Writer | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script a [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Writer.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
 <a href="Writer.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
 <a href="Writer.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
 <p>Close this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L634">generated.d.ts:634</a></li></ul></aside></li></ul></section><section class [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Write bytes into this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-4">await</span><span class="hl-1"> </span><span class="hl-5">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/ListOptions.html b/docs/nodejs/interfaces/ListOptions.html
index 2d6063d957..99e4847658 100644
--- a/docs/nodejs/interfaces/ListOptions.html
+++ b/docs/nodejs/interfaces/ListOptions.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><scr [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><scr [...]
 <a href="ListOptions.html#recursive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>recursive?</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index 16ab83db13..b3006da5c3 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -1,8 +1,8 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PresignedRequest | Apache OpenDAL™ - v0.45.1+core.0.45.1</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script [...]
-</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol">&lt;</span><span class=" [...]
+</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol">&lt;</span><span class=" [...]
 <a href="PresignedRequest.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>method</span></a>
 <a href="PresignedRequest.html#url" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>url</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="headers" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>headers</span><a href="#headers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">headers</span><span class="tsd-signature-symbol">: [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/71bddb4/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L42">generated.d.ts:42</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L38">generated.d.ts:38</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/558b1f9/bindings/nodejs/generated.d.ts#L40">generated.d.ts:40</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/object-store-opendal/search-index.js b/docs/object-store-opendal/search-index.js
index 70b3820125..7edfe3fb86 100644
--- a/docs/object-store-opendal/search-index.js
+++ b/docs/object-store-opendal/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = new Map(JSON.parse('[\
-["object_store_opendal",{"doc":"","t":"FNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["OpendalStore","abort_multipart","borrow","borrow_mut","copy","copy_if_not_exists","delete","fmt","fmt","from","get","get_opts","get_range","head","into","list","list_with_delimiter","list_with_offset","new","put","put_multipart","put_opts","rename","to_string","try_from","try_into","type_id"],"q":[[0,"object_store_opendal"],[27,"object_store::path"],[28,"object_store"],[29,"core::future::future"],[30,"alloc::boxed" [...]
+["object_store_opendal",{"doc":"","t":"FNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["OpendalStore","abort_multipart","borrow","borrow_mut","copy","copy_if_not_exists","delete","fmt","fmt","from","get","get_opts","get_range","head","into","list","list_with_delimiter","list_with_offset","new","put","put_multipart","put_opts","rename","to_string","try_from","try_into","type_id"],"q":[[0,"object_store_opendal"],[27,"object_store::path"],[28,"object_store"],[29,"core::future::future"],[30,"alloc::boxed" [...]
 ]'));
 if (typeof exports !== 'undefined') exports.searchIndex = searchIndex;
 else if (window.initSearch) window.initSearch(searchIndex);
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 9260090de2..276d98fab5 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Welcome to Apache OpenDAL™ | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -63,6 +63,6 @@
 <p>we DO NOT</p>
 <ul>
 <li>Add <code>Arc</code> for metadata: Users may only need to use metadata once and never clone it. For those who do want this feature, they can add <code>Arc</code> themselves.</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/overview.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29. [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/overview.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29. [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index 93e869ab2e..58837f2407 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -216,22 +216,22 @@
                     <a class="class" href="#Metadata">Metadata</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" href="#Metadata.content_length">content_length</a>
+                                <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_md5">content_md5</a>
+                                <a class="variable" href="#Metadata.mode">mode</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
+                                <a class="variable" href="#Metadata.content_type">content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_type">content_type</a>
+                                <a class="variable" href="#Metadata.content_md5">content_md5</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Metadata.etag">etag</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.mode">mode</a>
+                                <a class="variable" href="#Metadata.content_length">content_length</a>
                         </li>
                 </ul>
 
@@ -240,13 +240,13 @@
                     <a class="class" href="#PresignedRequest">PresignedRequest</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" href="#PresignedRequest.headers">headers</a>
+                                <a class="variable" href="#PresignedRequest.method">method</a>
                         </li>
                         <li>
-                                <a class="variable" href="#PresignedRequest.url">url</a>
+                                <a class="variable" href="#PresignedRequest.headers">headers</a>
                         </li>
                         <li>
-                                <a class="variable" href="#PresignedRequest.method">method</a>
+                                <a class="variable" href="#PresignedRequest.url">url</a>
                         </li>
                 </ul>
 
@@ -255,112 +255,112 @@
                     <a class="class" href="#Capability">Capability</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" href="#Capability.rename">rename</a>
+                                <a class="variable" href="#Capability.copy">copy</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
+                                <a class="variable" href="#Capability.presign_stat">presign_stat</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.create_dir">create_dir</a>
+                                <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.copy">copy</a>
+                                <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_read">presign_read</a>
+                                <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat">stat</a>
+                                <a class="variable" href="#Capability.delete">delete</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
+                                <a class="variable" href="#Capability.write">write</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
+                                <a class="variable" href="#Capability.batch_delete">batch_delete</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
+                                <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
+                                <a class="variable" href="#Capability.stat">stat</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign">presign</a>
+                                <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch">batch</a>
+                                <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
+                                <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
+                                <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
+                                <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
+                                <a class="variable" href="#Capability.presign_write">presign_write</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch_delete">batch_delete</a>
+                                <a class="variable" href="#Capability.list">list</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
+                                <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read">read</a>
+                                <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
+                                <a class="variable" href="#Capability.rename">rename</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write">write</a>
+                                <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
+                                <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
+                                <a class="variable" href="#Capability.blocking">blocking</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Capability.write_can_append">write_can_append</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
+                                <a class="variable" href="#Capability.presign_read">presign_read</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.delete">delete</a>
+                                <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
+                                <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
+                                <a class="variable" href="#Capability.batch">batch</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
+                                <a class="variable" href="#Capability.create_dir">create_dir</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
+                                <a class="variable" href="#Capability.presign">presign</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_write">presign_write</a>
+                                <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.blocking">blocking</a>
+                                <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list">list</a>
+                                <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
+                                <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
+                                <a class="variable" href="#Capability.read">read</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_stat">presign_stat</a>
+                                <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
                         </li>
                 </ul>
 
@@ -1278,52 +1278,52 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
     
     
 
-                            <div id="Metadata.content_length" class="classattr">
+                            <div id="Metadata.content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_length</span><span class="annotation">: int</span>
+            <span class="name">content_disposition</span><span class="annotation">: Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_length"></a>
+    <a class="headerlink" href="#Metadata.content_disposition"></a>
+    
     
-            <div class="docstring"><p>Content length of this entry.</p>
-</div>
-
 
                             </div>
-                            <div id="Metadata.content_md5" class="classattr">
+                            <div id="Metadata.mode" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
+            <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_md5"></a>
+    <a class="headerlink" href="#Metadata.mode"></a>
     
-            <div class="docstring"><p>Content MD5 of this entry.</p>
+            <div class="docstring"><p>mode represent this entry's mode.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.content_disposition" class="classattr">
+                            <div id="Metadata.content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_disposition</span><span class="annotation">: Optional[str]</span>
+            <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_disposition"></a>
-    
+    <a class="headerlink" href="#Metadata.content_type"></a>
     
+            <div class="docstring"><p>Content Type of this entry.</p>
+</div>
+
 
                             </div>
-                            <div id="Metadata.content_type" class="classattr">
+                            <div id="Metadata.content_md5" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
+            <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_type"></a>
+    <a class="headerlink" href="#Metadata.content_md5"></a>
     
-            <div class="docstring"><p>Content Type of this entry.</p>
+            <div class="docstring"><p>Content MD5 of this entry.</p>
 </div>
 
 
@@ -1341,15 +1341,15 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
 
 
                             </div>
-                            <div id="Metadata.mode" class="classattr">
+                            <div id="Metadata.content_length" class="classattr">
                                 <div class="attr variable">
-            <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">EntryMode</a></span>
+            <span class="name">content_length</span><span class="annotation">: int</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.mode"></a>
+    <a class="headerlink" href="#Metadata.content_length"></a>
     
-            <div class="docstring"><p>mode represent this entry's mode.</p>
+            <div class="docstring"><p>Content length of this entry.</p>
 </div>
 
 
@@ -1367,41 +1367,41 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
     
     
 
-                            <div id="PresignedRequest.headers" class="classattr">
+                            <div id="PresignedRequest.method" class="classattr">
                                 <div class="attr variable">
-            <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
+            <span class="name">method</span><span class="annotation">: str</span>
 
         
     </div>
-    <a class="headerlink" href="#PresignedRequest.headers"></a>
+    <a class="headerlink" href="#PresignedRequest.method"></a>
     
-            <div class="docstring"><p>Return the HTTP headers of this request.</p>
+            <div class="docstring"><p>Return the HTTP method of this request.</p>
 </div>
 
 
                             </div>
-                            <div id="PresignedRequest.url" class="classattr">
+                            <div id="PresignedRequest.headers" class="classattr">
                                 <div class="attr variable">
-            <span class="name">url</span><span class="annotation">: str</span>
+            <span class="name">headers</span><span class="annotation">: dict[str, str]</span>
 
         
     </div>
-    <a class="headerlink" href="#PresignedRequest.url"></a>
+    <a class="headerlink" href="#PresignedRequest.headers"></a>
     
-            <div class="docstring"><p>Return the URL of this request.</p>
+            <div class="docstring"><p>Return the HTTP headers of this request.</p>
 </div>
 
 
                             </div>
-                            <div id="PresignedRequest.method" class="classattr">
+                            <div id="PresignedRequest.url" class="classattr">
                                 <div class="attr variable">
-            <span class="name">method</span><span class="annotation">: str</span>
+            <span class="name">url</span><span class="annotation">: str</span>
 
         
     </div>
-    <a class="headerlink" href="#PresignedRequest.method"></a>
+    <a class="headerlink" href="#PresignedRequest.url"></a>
     
-            <div class="docstring"><p>Return the HTTP method of this request.</p>
+            <div class="docstring"><p>Return the URL of this request.</p>
 </div>
 
 
@@ -1422,305 +1422,309 @@ by current Operator.</p>
 </div>
 
 
-                            <div id="Capability.rename" class="classattr">
+                            <div id="Capability.copy" class="classattr">
                                 <div class="attr variable">
-            <span class="name">rename</span><span class="annotation">: bool</span>
+            <span class="name">copy</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.rename"></a>
+    <a class="headerlink" href="#Capability.copy"></a>
     
-            <div class="docstring"><p>If operator supports rename.</p>
+            <div class="docstring"><p>If operator supports copy.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_max_size" class="classattr">
+                            <div id="Capability.presign_stat" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
+            <span class="name">presign_stat</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_max_size"></a>
+    <a class="headerlink" href="#Capability.presign_stat"></a>
     
-            <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
-
-<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
+            <div class="docstring"><p>If operator supports presign stat.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.create_dir" class="classattr">
+                            <div id="Capability.list_with_recursive" class="classattr">
                                 <div class="attr variable">
-            <span class="name">create_dir</span><span class="annotation">: bool</span>
+            <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.create_dir"></a>
+    <a class="headerlink" href="#Capability.list_with_recursive"></a>
     
-            <div class="docstring"><p>If operator supports create dir.</p>
+            <div class="docstring"><p>If backend supports list without delimiter.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.copy" class="classattr">
+                            <div id="Capability.read_with_if_none_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">copy</span><span class="annotation">: bool</span>
+            <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.copy"></a>
+    <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
     
-            <div class="docstring"><p>If operator supports copy.</p>
+            <div class="docstring"><p>If operator supports read with if none match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_read" class="classattr">
+                            <div id="Capability.write_multi_min_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_read</span><span class="annotation">: bool</span>
+            <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_read"></a>
+    <a class="headerlink" href="#Capability.write_multi_min_size"></a>
     
-            <div class="docstring"><p>If operator supports presign read.</p>
+            <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
+
+<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat" class="classattr">
+                            <div id="Capability.delete" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat</span><span class="annotation">: bool</span>
+            <span class="name">delete</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat"></a>
+    <a class="headerlink" href="#Capability.delete"></a>
     
-            <div class="docstring"><p>If operator supports stat.</p>
+            <div class="docstring"><p>If operator supports delete.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_if_none_match" class="classattr">
+                            <div id="Capability.write" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_if_none_match</span><span class="annotation">: bool</span>
+            <span class="name">write</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
+    <a class="headerlink" href="#Capability.write"></a>
     
-            <div class="docstring"><p>If operator supports read with if none match.</p>
+            <div class="docstring"><p>If operator supports write.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_cache_control" class="classattr">
+                            <div id="Capability.batch_delete" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
+            <span class="name">batch_delete</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
+    <a class="headerlink" href="#Capability.batch_delete"></a>
     
-            <div class="docstring"><p>if operator supports read with override cache control.</p>
+            <div class="docstring"><p>If operator supports batch delete.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_align_size" class="classattr">
+                            <div id="Capability.batch_max_operations" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
+            <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_align_size"></a>
+    <a class="headerlink" href="#Capability.batch_max_operations"></a>
     
-            <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
-
-<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
+            <div class="docstring"><p>The max operations that operator supports in batch.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat_with_if_none_match" class="classattr">
+                            <div id="Capability.stat" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
+            <span class="name">stat</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
+    <a class="headerlink" href="#Capability.stat"></a>
     
-            <div class="docstring"><p>If operator supports stat with if none match.</p>
+            <div class="docstring"><p>If operator supports stat.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign" class="classattr">
+                            <div id="Capability.write_multi_align_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign</span><span class="annotation">: bool</span>
+            <span class="name">write_multi_align_size</span><span class="annotation">: Optional[int]</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign"></a>
+    <a class="headerlink" href="#Capability.write_multi_align_size"></a>
     
-            <div class="docstring"><p>If operator supports presign.</p>
+            <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
+
+<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch" class="classattr">
+                            <div id="Capability.list_with_start_after" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch</span><span class="annotation">: bool</span>
+            <span class="name">list_with_start_after</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch"></a>
+    <a class="headerlink" href="#Capability.list_with_start_after"></a>
     
-            <div class="docstring"><p>If operator supports batch.</p>
+            <div class="docstring"><p>If backend supports list with start after.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch_max_operations" class="classattr">
+                            <div id="Capability.stat_with_if_none_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch_max_operations</span><span class="annotation">: Optional[int]</span>
+            <span class="name">stat_with_if_none_match</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch_max_operations"></a>
+    <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
     
-            <div class="docstring"><p>The max operations that operator supports in batch.</p>
+            <div class="docstring"><p>If operator supports stat with if none match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_content_type" class="classattr">
+                            <div id="Capability.write_multi_max_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
+            <span class="name">write_multi_max_size</span><span class="annotation">: Optional[int]</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_content_type"></a>
+    <a class="headerlink" href="#Capability.write_multi_max_size"></a>
     
-            <div class="docstring"><p>If operator supports write with content type.</p>
+            <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
+
+<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat_with_if_match" class="classattr">
+                            <div id="Capability.write_total_max_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
+            <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat_with_if_match"></a>
+    <a class="headerlink" href="#Capability.write_total_max_size"></a>
     
-            <div class="docstring"><p>If operator supports stat with if match.</p>
+            <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
+
+<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_if_match" class="classattr">
+                            <div id="Capability.presign_write" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
+            <span class="name">presign_write</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_if_match"></a>
+    <a class="headerlink" href="#Capability.presign_write"></a>
     
-            <div class="docstring"><p>If operator supports read with if match.</p>
+            <div class="docstring"><p>If operator supports presign write.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch_delete" class="classattr">
+                            <div id="Capability.list" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch_delete</span><span class="annotation">: bool</span>
+            <span class="name">list</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch_delete"></a>
+    <a class="headerlink" href="#Capability.list"></a>
     
-            <div class="docstring"><p>If operator supports batch delete.</p>
+            <div class="docstring"><p>If operator supports list.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_cache_control" class="classattr">
+                            <div id="Capability.read_with_override_content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
+            <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_cache_control"></a>
+    <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
     
-            <div class="docstring"><p>If operator supports write with cache control.</p>
+            <div class="docstring"><p>if operator supports read with override content disposition.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read" class="classattr">
+                            <div id="Capability.read_with_if_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read</span><span class="annotation">: bool</span>
+            <span class="name">read_with_if_match</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read"></a>
+    <a class="headerlink" href="#Capability.read_with_if_match"></a>
     
-            <div class="docstring"><p>If operator supports read.</p>
+            <div class="docstring"><p>If operator supports read with if match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_can_empty" class="classattr">
+                            <div id="Capability.rename" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_can_empty</span><span class="annotation">: bool</span>
+            <span class="name">rename</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_can_empty"></a>
+    <a class="headerlink" href="#Capability.rename"></a>
     
-            <div class="docstring"><p>If operator supports write with empty content.</p>
+            <div class="docstring"><p>If operator supports rename.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write" class="classattr">
+                            <div id="Capability.write_can_empty" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write</span><span class="annotation">: bool</span>
+            <span class="name">write_can_empty</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write"></a>
+    <a class="headerlink" href="#Capability.write_can_empty"></a>
     
-            <div class="docstring"><p>If operator supports write.</p>
+            <div class="docstring"><p>If operator supports write with empty content.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_content_disposition" class="classattr">
+                            <div id="Capability.write_with_content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_content_disposition</span><span class="annotation">: bool</span>
+            <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
+    <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
     
-            <div class="docstring"><p>if operator supports read with override content disposition.</p>
+            <div class="docstring"><p>If operator supports write with content disposition.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_can_multi" class="classattr">
+                            <div id="Capability.blocking" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_can_multi</span><span class="annotation">: bool</span>
+            <span class="name">blocking</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_can_multi"></a>
+    <a class="headerlink" href="#Capability.blocking"></a>
     
-            <div class="docstring"><p>If operator supports write can be called in multi times.</p>
+            <div class="docstring"><p>If operator supports blocking.</p>
 </div>
 
 
@@ -1738,162 +1742,158 @@ by current Operator.</p>
 
 
                             </div>
-                            <div id="Capability.write_total_max_size" class="classattr">
+                            <div id="Capability.presign_read" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_total_max_size</span><span class="annotation">: Optional[int]</span>
+            <span class="name">presign_read</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_total_max_size"></a>
+    <a class="headerlink" href="#Capability.presign_read"></a>
     
-            <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
-
-<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
+            <div class="docstring"><p>If operator supports presign read.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.delete" class="classattr">
+                            <div id="Capability.write_can_multi" class="classattr">
                                 <div class="attr variable">
-            <span class="name">delete</span><span class="annotation">: bool</span>
+            <span class="name">write_can_multi</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.delete"></a>
+    <a class="headerlink" href="#Capability.write_can_multi"></a>
     
-            <div class="docstring"><p>If operator supports delete.</p>
+            <div class="docstring"><p>If operator supports write can be called in multi times.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_min_size" class="classattr">
+                            <div id="Capability.write_with_cache_control" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_min_size</span><span class="annotation">: Optional[int]</span>
+            <span class="name">write_with_cache_control</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_min_size"></a>
+    <a class="headerlink" href="#Capability.write_with_cache_control"></a>
     
-            <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
-
-<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
+            <div class="docstring"><p>If operator supports write with cache control.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_limit" class="classattr">
+                            <div id="Capability.batch" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_limit</span><span class="annotation">: bool</span>
+            <span class="name">batch</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_limit"></a>
+    <a class="headerlink" href="#Capability.batch"></a>
     
-            <div class="docstring"><p>If backend supports list with limit.</p>
+            <div class="docstring"><p>If operator supports batch.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_content_disposition" class="classattr">
+                            <div id="Capability.create_dir" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_content_disposition</span><span class="annotation">: bool</span>
+            <span class="name">create_dir</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
+    <a class="headerlink" href="#Capability.create_dir"></a>
     
-            <div class="docstring"><p>If operator supports write with content disposition.</p>
+            <div class="docstring"><p>If operator supports create dir.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_start_after" class="classattr">
+                            <div id="Capability.presign" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_start_after</span><span class="annotation">: bool</span>
+            <span class="name">presign</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_start_after"></a>
+    <a class="headerlink" href="#Capability.presign"></a>
     
-            <div class="docstring"><p>If backend supports list with start after.</p>
+            <div class="docstring"><p>If operator supports presign.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_write" class="classattr">
+                            <div id="Capability.list_with_limit" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_write</span><span class="annotation">: bool</span>
+            <span class="name">list_with_limit</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_write"></a>
+    <a class="headerlink" href="#Capability.list_with_limit"></a>
     
-            <div class="docstring"><p>If operator supports presign write.</p>
+            <div class="docstring"><p>If backend supports list with limit.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.blocking" class="classattr">
+                            <div id="Capability.write_with_content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">blocking</span><span class="annotation">: bool</span>
+            <span class="name">write_with_content_type</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.blocking"></a>
+    <a class="headerlink" href="#Capability.write_with_content_type"></a>
     
-            <div class="docstring"><p>If operator supports blocking.</p>
+            <div class="docstring"><p>If operator supports write with content type.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list" class="classattr">
+                            <div id="Capability.stat_with_if_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list</span><span class="annotation">: bool</span>
+            <span class="name">stat_with_if_match</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list"></a>
+    <a class="headerlink" href="#Capability.stat_with_if_match"></a>
     
-            <div class="docstring"><p>If operator supports list.</p>
+            <div class="docstring"><p>If operator supports stat with if match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_recursive" class="classattr">
+                            <div id="Capability.read_with_override_cache_control" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_recursive</span><span class="annotation">: bool</span>
+            <span class="name">read_with_override_cache_control</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_recursive"></a>
+    <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
     
-            <div class="docstring"><p>If backend supports list without delimiter.</p>
+            <div class="docstring"><p>if operator supports read with override cache control.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_content_type" class="classattr">
+                            <div id="Capability.read" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
+            <span class="name">read</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
+    <a class="headerlink" href="#Capability.read"></a>
     
-            <div class="docstring"><p>if operator supports read with override content type.</p>
+            <div class="docstring"><p>If operator supports read.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_stat" class="classattr">
+                            <div id="Capability.read_with_override_content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_stat</span><span class="annotation">: bool</span>
+            <span class="name">read_with_override_content_type</span><span class="annotation">: bool</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_stat"></a>
+    <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
     
-            <div class="docstring"><p>If operator supports presign stat.</p>
+            <div class="docstring"><p>if operator supports read with override content type.</p>
 </div>
 
 
diff --git a/docs/python/search.js b/docs/python/search.js
index c8c4ba2e16..0f3d1f8e08 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1,6 +1,6 @@
 window.pdocSearch = (function(){
 /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.wa [...]
-    /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>Apache OpenDAL\u2122 Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\ [...]
+    /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>Apache OpenDAL\u2122 Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\ [...]
 
     // mirrored in build-search-index.js (part 1)
     // Also split on html tags. this is a cheap heuristic, but good enough.
diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html
index 837a7f5868..25d2124919 100644
--- a/docs/quickstart/index.html
+++ b/docs/quickstart/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Quickstart | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/quickstart"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh=" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -53,6 +53,6 @@
 <div class="language-shell codeBlockContainer_MfrX theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__QvJ"><pre tabindex="0" class="prism-code language-shell codeBlock_xMeh thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_lAHS"><span class="token-line" style="color:#393A34"><span class="token plain">npm install opendal</span><br></span></code></pre><div class="buttonGroup_fpPU"><button t [...]
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="demo-3">Demo<a href="#demo-3" class="hash-link" aria-label="Direct link to Demo" title="Direct link to Demo">​</a></h3>
 <p>Try it out:</p>
-<div class="language-javascript codeBlockContainer_MfrX theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__QvJ"><pre tabindex="0" class="prism-code language-javascript codeBlock_xMeh thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_lAHS"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span>< [...]
+<div class="language-javascript codeBlockContainer_MfrX theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent__QvJ"><pre tabindex="0" class="prism-code language-javascript codeBlock_xMeh thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_lAHS"><span class="token-line" style="color:#393A34"><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span>< [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/atomicserver/index.html b/docs/services/atomicserver/index.html
index e13625a8b6..20a82ac2ca 100644
--- a/docs/services/atomicserver/index.html
+++ b/docs/services/atomicserver/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">AtomicServer | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/atomicserver"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/azblob/index.html b/docs/services/azblob/index.html
index 84225003bb..cbc6c9de6f 100644
--- a/docs/services/azblob/index.html
+++ b/docs/services/azblob/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Azblob | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azblob"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -46,6 +46,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/azdls/index.html b/docs/services/azdls/index.html
index ea67fefa42..9053c79a2b 100644
--- a/docs/services/azdls/index.html
+++ b/docs/services/azdls/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Azdls | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azdls"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -45,6 +45,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/cacache/index.html b/docs/services/cacache/index.html
index 5a74624160..fe24ba290d 100644
--- a/docs/services/cacache/index.html
+++ b/docs/services/cacache/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Cacache | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/cacache"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -37,6 +37,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/cos/index.html b/docs/services/cos/index.html
index ef2726c318..6b5929a9de 100644
--- a/docs/services/cos/index.html
+++ b/docs/services/cos/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">COS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/cos"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/d1/index.html b/docs/services/d1/index.html
index 105abfc914..02c2586d20 100644
--- a/docs/services/d1/index.html
+++ b/docs/services/d1/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">D1 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/d1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -42,6 +42,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/dashmap/index.html b/docs/services/dashmap/index.html
index e48ab36e9c..3a36f0c49e 100644
--- a/docs/services/dashmap/index.html
+++ b/docs/services/dashmap/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">DashMap | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/dashmap"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -26,6 +26,6 @@
 <li class="task-list-item"><input type="checkbox" disabled="" checked=""> scan</li>
 <li class="task-list-item"><input type="checkbox" disabled=""> presign</li>
 <li class="task-list-item"><input type="checkbox" disabled=""> blocking</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/dashmap.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/dashmap.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1 [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/dropbox/index.html b/docs/services/dropbox/index.html
index 038ce22381..844e0abbb2 100644
--- a/docs/services/dropbox/index.html
+++ b/docs/services/dropbox/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Dropbox | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/dropbox"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -55,6 +55,6 @@ for more information.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/etcd/index.html b/docs/services/etcd/index.html
index f8599c7737..b76a567c3a 100644
--- a/docs/services/etcd/index.html
+++ b/docs/services/etcd/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Etcd | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/etcd"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -43,6 +43,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/foundationdb/index.html b/docs/services/foundationdb/index.html
index 669dcbd1bb..9a486c78a0 100644
--- a/docs/services/foundationdb/index.html
+++ b/docs/services/foundationdb/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">FoundationDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/foundationdb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><m [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -39,6 +39,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/fs/index.html b/docs/services/fs/index.html
index f55f7233e7..fc994d8cea 100644
--- a/docs/services/fs/index.html
+++ b/docs/services/fs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Fs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/fs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -39,6 +39,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ftp/index.html b/docs/services/ftp/index.html
index 280315699a..29d9af854f 100644
--- a/docs/services/ftp/index.html
+++ b/docs/services/ftp/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">FTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ftp"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -40,6 +40,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/gcs/index.html b/docs/services/gcs/index.html
index f7b1b5a09e..5b748c8e31 100644
--- a/docs/services/gcs/index.html
+++ b/docs/services/gcs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Gcs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gcs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -43,6 +43,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/gdrive/index.html b/docs/services/gdrive/index.html
index 18a0cca597..7cf625947f 100644
--- a/docs/services/gdrive/index.html
+++ b/docs/services/gdrive/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Gdrive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gdrive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -56,6 +56,6 @@ for more information.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ghac/index.html b/docs/services/ghac/index.html
index 6d9940e2d4..cd2a8a79b2 100644
--- a/docs/services/ghac/index.html
+++ b/docs/services/ghac/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">GHAC | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ghac"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -55,6 +55,6 @@ be automatically evicted at any time.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/gridfs/index.html b/docs/services/gridfs/index.html
index 9289017538..fbd50ff1c2 100644
--- a/docs/services/gridfs/index.html
+++ b/docs/services/gridfs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Gridfs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/gridfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -40,6 +40,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/hdfs/index.html b/docs/services/hdfs/index.html
index f30f764723..d1e3053330 100644
--- a/docs/services/hdfs/index.html
+++ b/docs/services/hdfs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">HDFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/hdfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -91,6 +91,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/http/index.html b/docs/services/http/index.html
index 6a3fea59b9..10361eca5d 100644
--- a/docs/services/http/index.html
+++ b/docs/services/http/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">HTTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/http"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@ HTTP Server like nginx, caddy.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/huggingface/index.html b/docs/services/huggingface/index.html
index 47bd112e07..34d61ddd1a 100644
--- a/docs/services/huggingface/index.html
+++ b/docs/services/huggingface/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Hugging Face | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/huggingface"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -44,6 +44,6 @@ Currently, we only support the <code>model</code> and <code>dataset</code> types
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ipfs/index.html b/docs/services/ipfs/index.html
index 7e680660fa..47402de1c8 100644
--- a/docs/services/ipfs/index.html
+++ b/docs/services/ipfs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">IPFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -38,6 +38,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ipmfs/index.html b/docs/services/ipmfs/index.html
index 27b5fb3141..528e89e640 100644
--- a/docs/services/ipmfs/index.html
+++ b/docs/services/ipmfs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">IPMFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipmfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -26,6 +26,6 @@
 <li class="task-list-item"><input type="checkbox" disabled=""> scan</li>
 <li class="task-list-item"><input type="checkbox" disabled=""> presign</li>
 <li class="task-list-item"><input type="checkbox" disabled=""> blocking</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/ipmfs.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/ipmfs.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2 [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/libsql/index.html b/docs/services/libsql/index.html
index 95a5d2df88..4ea3485ce7 100644
--- a/docs/services/libsql/index.html
+++ b/docs/services/libsql/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">LibSQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/libsql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/memcached/index.html b/docs/services/memcached/index.html
index 82a6437a75..fc68b2b0c7 100644
--- a/docs/services/memcached/index.html
+++ b/docs/services/memcached/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Memcached | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/memcached"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta da [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/memory/index.html b/docs/services/memory/index.html
index 7b18fdf22c..14fc1650d2 100644
--- a/docs/services/memory/index.html
+++ b/docs/services/memory/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Memory | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/memory"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -32,6 +32,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/moka/index.html b/docs/services/moka/index.html
index ae726748bd..8d62cfb436 100644
--- a/docs/services/moka/index.html
+++ b/docs/services/moka/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Moka | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/moka"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/mongodb/index.html b/docs/services/mongodb/index.html
index 9748601874..bac4b0c068 100644
--- a/docs/services/mongodb/index.html
+++ b/docs/services/mongodb/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">MongoDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/mongodb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/mysql/index.html b/docs/services/mysql/index.html
index 1d1bb0c125..c20b6ef6ec 100644
--- a/docs/services/mysql/index.html
+++ b/docs/services/mysql/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">MySQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/mysql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -40,6 +40,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/obs/index.html b/docs/services/obs/index.html
index a44beba35b..83f54cbfbf 100644
--- a/docs/services/obs/index.html
+++ b/docs/services/obs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Obs | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/obs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/onedrive/index.html b/docs/services/onedrive/index.html
index de3cdb5ccd..63232396ee 100644
--- a/docs/services/onedrive/index.html
+++ b/docs/services/onedrive/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">OneDrive | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/onedrive"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -37,6 +37,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/oss/index.html b/docs/services/oss/index.html
index e1ec57b263..b3ab1b7fdb 100644
--- a/docs/services/oss/index.html
+++ b/docs/services/oss/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">OSS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/oss"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -46,6 +46,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/persy/index.html b/docs/services/persy/index.html
index 68d233a597..6f5f619c20 100644
--- a/docs/services/persy/index.html
+++ b/docs/services/persy/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Persy | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/persy"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -39,6 +39,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/postgresql/index.html b/docs/services/postgresql/index.html
index f2ab0e33bf..a4bb09eaef 100644
--- a/docs/services/postgresql/index.html
+++ b/docs/services/postgresql/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">PostgreSQL | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/postgresql"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -40,6 +40,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/redb/index.html b/docs/services/redb/index.html
index c40f896947..12bcc5e427 100644
--- a/docs/services/redb/index.html
+++ b/docs/services/redb/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Redb | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/redb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -37,6 +37,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/redis/index.html b/docs/services/redis/index.html
index 2bd962fd73..1fe20e8f55 100644
--- a/docs/services/redis/index.html
+++ b/docs/services/redis/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Redis | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/redis"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -42,6 +42,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/rocksdb/index.html b/docs/services/rocksdb/index.html
index 44b508f244..e796c65145 100644
--- a/docs/services/rocksdb/index.html
+++ b/docs/services/rocksdb/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">RocksDB | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/rocksdb"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -49,6 +49,6 @@ may be outdated and incompatible.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/s3/index.html b/docs/services/s3/index.html
index c566cb3256..49805018c2 100644
--- a/docs/services/s3/index.html
+++ b/docs/services/s3/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">S3 | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/s3"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" n [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -190,6 +190,6 @@
 </ul>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="ceph-rados-gateway">Ceph Rados Gateway<a href="#ceph-rados-gateway" class="hash-link" aria-label="Direct link to Ceph Rados Gateway" title="Direct link to Ceph Rados Gateway">​</a></h3>
 <p>Ceph supports a RESTful API that is compatible with the basic data access model of the Amazon S3 API.</p>
-<p>For more information, refer: <a href="https://docs.ceph.com/en/latest/radosgw/s3/" target="_blank" rel="noopener noreferrer">https://docs.ceph.com/en/latest/radosgw/s3/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/s3.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" w [...]
+<p>For more information, refer: <a href="https://docs.ceph.com/en/latest/radosgw/s3/" target="_blank" rel="noopener noreferrer">https://docs.ceph.com/en/latest/radosgw/s3/</a></p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/s3.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" w [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/sftp/index.html b/docs/services/sftp/index.html
index fe41b59c0b..4e79d91936 100644
--- a/docs/services/sftp/index.html
+++ b/docs/services/sftp/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">SFTP | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sftp"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -46,6 +46,6 @@ lots of files, you should pay attention to close the file after using it.</p></d
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/sled/index.html b/docs/services/sled/index.html
index f38262884f..5a22535865 100644
--- a/docs/services/sled/index.html
+++ b/docs/services/sled/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Sled | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sled"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -37,6 +37,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/sqlite/index.html b/docs/services/sqlite/index.html
index cfd9a162b7..f620aef9bd 100644
--- a/docs/services/sqlite/index.html
+++ b/docs/services/sqlite/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Sqlite | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sqlite"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -38,6 +38,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/supabase/index.html b/docs/services/supabase/index.html
index 50cedcf087..413fc5639d 100644
--- a/docs/services/supabase/index.html
+++ b/docs/services/supabase/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Supabase | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/supabase"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -42,6 +42,6 @@ can access all resources. Note that if you want to read public resources, do not
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/swift/index.html b/docs/services/swift/index.html
index 1ca355257a..c8a5ded80d 100644
--- a/docs/services/swift/index.html
+++ b/docs/services/swift/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Swift | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/swift"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -78,6 +78,6 @@
 <ul>
 <li><a href="https://docs.ceph.com/en/latest/radosgw/swift/#api" target="_blank" rel="noopener noreferrer">Ceph Rados Gateway Swift API</a>.</li>
 <li><a href="https://docs.ceph.com/en/latest/radosgw/swift/auth/" target="_blank" rel="noopener noreferrer">Ceph Rados Gateway Swift Authentication</a>.</li>
-</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/swift.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2 [...]
+</ul></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/opendal/tree/main/website/docs/services/swift.mdx" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit__AOS" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2 [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/tikv/index.html b/docs/services/tikv/index.html
index 1c69686b28..e96fb04f36 100644
--- a/docs/services/tikv/index.html
+++ b/docs/services/tikv/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">TiKV | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/tikv"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/vercel_artifacts/index.html b/docs/services/vercel_artifacts/index.html
index f46b8f9d57..441a6d6847 100644
--- a/docs/services/vercel_artifacts/index.html
+++ b/docs/services/vercel_artifacts/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Vercel Artifacts | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/vercel_artifacts"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -37,6 +37,6 @@
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/webdav/index.html b/docs/services/webdav/index.html
index 533286dd16..5fb4801db5 100644
--- a/docs/services/webdav/index.html
+++ b/docs/services/webdav/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">WebDAV | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/webdav"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -41,6 +41,6 @@ Users can use <code>webdav</code> to connect those services.</p>
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/webhdfs/index.html b/docs/services/webhdfs/index.html
index 6baf70439f..e435ed1ea1 100644
--- a/docs/services/webhdfs/index.html
+++ b/docs/services/webhdfs/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">WebHDFS | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/webhdfs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-r [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
@@ -61,6 +61,6 @@ This issue, identified as <a href="https://issues.apache.org/jira/browse/HDFS-66
 <h3 class="anchor anchorWithStickyNavbar_VwHQ" id="via-config">Via Config<a href="#via-config" class="hash-link" aria-label="Direct link to Via Config" title="Direct link to Via Config">​</a></h3>
 <!-- -->
 <!-- -->
-<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
+<div class="tabs-container tabList_zxWd"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_TcdJ tabs__item--active">Rust</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Node.js</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_TcdJ">Python</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_CbVR"><div class="lang [...]
 </body>
 </html>
\ No newline at end of file
diff --git a/download/index.html b/download/index.html
index 00f5fe65ee..fae4a5904d 100644
--- a/download/index.html
+++ b/download/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™ Downloads | Apache OpenDAL™</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/download"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/index.html b/index.html
index 74fe311402..8a79023805 100644
--- a/index.html
+++ b/index.html
@@ -5,8 +5,8 @@
 <meta name="generator" content="Docusaurus v3.1.1">
 <title data-rh="true">Apache OpenDAL™</title><meta data-rh="true" property="og:title" content="Apache OpenDAL™"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b669fb25.css">
-<script src="/assets/js/runtime~main.8256c91e.js" defer="defer"></script>
-<script src="/assets/js/main.a9b5395f.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.3d561265.js" defer="defer"></script>
+<script src="/assets/js/main.2740ff97.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.se [...]
diff --git a/lunr-index-1712023578797.json b/lunr-index-1712023578797.json
deleted file mode 100644
index 6846124679..0000000000
--- a/lunr-index-1712023578797.json
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,219.962,1,123.309,2,407.059,3,381.55,4,442.024,5,260.062,6,442.024]],["content/0",[0,2.575,1,2.875,2,8.635,3,8.094,4,8.258,5,4.859,6,9.377,7,2.636,8,2.834,9,3.661,10,1.2,11,3.336,12,4.605,13,4.764,14,7.524,15,9.874,16,2.961,17,3.661,18,5.174,19,3.661,20,2.834,21,2.096,22,0.533,23,1.447,24,2.027,25,3.661,26,3.336,27,5.174,28,7.902,29,2.834,30,3.121,31,1.702,32,5.653,33,3.121,34,3.486,35,3.433,36,3.336 [...]
\ No newline at end of file
diff --git a/lunr-index-1712233559629.json b/lunr-index-1712233559629.json
new file mode 100644
index 0000000000..4972ea49e7
--- /dev/null
+++ b/lunr-index-1712233559629.json
@@ -0,0 +1 @@
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,317.942,1,178.235,2,452.257,3,551.509]],["content/0",[]],["keywords/0",[]],["title/1",[0,373.382,1,209.314,4,750.329]],["content/1",[0,1.83,1,2.984,5,6.254,6,4.038,7,2.699,8,2.752,9,1.69,10,3.086,11,3.174,12,3.678,13,2.559,14,7.721,15,3.734,16,2.935,17,2.37,18,3.387,19,3.274,20,1.461,21,3.274,22,5.965,23,2.869,24,2.65,25,3.678,26,5.741,27,4.143,28,4.143,29,4.547,30,4.547,31,1.559,32,4.547,33,7.708,34 [...]
\ No newline at end of file
diff --git a/lunr-index.json b/lunr-index.json
index 6846124679..4972ea49e7 100644
--- a/lunr-index.json
+++ b/lunr-index.json
@@ -1 +1 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,219.962,1,123.309,2,407.059,3,381.55,4,442.024,5,260.062,6,442.024]],["content/0",[0,2.575,1,2.875,2,8.635,3,8.094,4,8.258,5,4.859,6,9.377,7,2.636,8,2.834,9,3.661,10,1.2,11,3.336,12,4.605,13,4.764,14,7.524,15,9.874,16,2.961,17,3.661,18,5.174,19,3.661,20,2.834,21,2.096,22,0.533,23,1.447,24,2.027,25,3.661,26,3.336,27,5.174,28,7.902,29,2.834,30,3.121,31,1.702,32,5.653,33,3.121,34,3.486,35,3.433,36,3.336 [...]
\ No newline at end of file
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,317.942,1,178.235,2,452.257,3,551.509]],["content/0",[]],["keywords/0",[]],["title/1",[0,373.382,1,209.314,4,750.329]],["content/1",[0,1.83,1,2.984,5,6.254,6,4.038,7,2.699,8,2.752,9,1.69,10,3.086,11,3.174,12,3.678,13,2.559,14,7.721,15,3.734,16,2.935,17,2.37,18,3.387,19,3.274,20,1.461,21,3.274,22,5.965,23,2.869,24,2.65,25,3.678,26,5.741,27,4.143,28,4.143,29,4.547,30,4.547,31,1.559,32,4.547,33,7.708,34 [...]
\ No newline at end of file
diff --git a/search-doc-1712023578797.json b/search-doc-1712023578797.json
deleted file mode 100644
index daa784edfe..0000000000
--- a/search-doc-1712023578797.json
+++ /dev/null
@@ -1 +0,0 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ participates in Google Summer of Code 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-gsoc-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Google Summer of Code (GSoC) 2024. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful info [...]
\ No newline at end of file
diff --git a/search-doc-1712233559629.json b/search-doc-1712233559629.json
new file mode 100644
index 0000000000..ab104d9c7f
--- /dev/null
+++ b/search-doc-1712233559629.json
@@ -0,0 +1 @@
+{"searchDocs":[{"title":"Apache OpenDAL™ is now Graduated","type":0,"sectionRef":"#","url":"/blog/apache-opendal-graduated","content":"","keywords":"","version":null},{"title":"What's Apache OpenDAL?​","type":1,"pageTitle":"Apache OpenDAL™ is now Graduated","url":"/blog/apache-opendal-graduated#whats-apache-opendal","content":" Apache OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way. Our VISION is acce [...]
\ No newline at end of file
diff --git a/search-doc.json b/search-doc.json
index daa784edfe..ab104d9c7f 100644
--- a/search-doc.json
+++ b/search-doc.json
@@ -1 +1 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ participates in Google Summer of Code 2024","type":0,"sectionRef":"#","url":"/blog/apache-opendal-participates-in-gsoc-2024","content":"Hello, everyone! We're writing this blog post to announce that the Apache OpenDAL™ Project will be participating in Google Summer of Code (GSoC) 2024. If you're not eligible or interested in participating in GSoC, then most of this post likely isn't relevant to you; if you are, this should contain some useful info [...]
\ No newline at end of file
+{"searchDocs":[{"title":"Apache OpenDAL™ is now Graduated","type":0,"sectionRef":"#","url":"/blog/apache-opendal-graduated","content":"","keywords":"","version":null},{"title":"What's Apache OpenDAL?​","type":1,"pageTitle":"Apache OpenDAL™ is now Graduated","url":"/blog/apache-opendal-graduated#whats-apache-opendal","content":" Apache OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way. Our VISION is acce [...]
\ No newline at end of file