Hi Sam,<br><br>Below is the wrapper for file/tar. I found a few discrepancies <a href="http://docs.plt-scheme.org/file/tar.html" target="_blank">from the doc</a>:<br><ol><li>both tar and tar->output returns a exact-nonenegative-integer? instead of void? (due to the last call being (write-bytes ...)), so I had them return Integer<br>
</li><li>tar->output takes (listof path?) instead of (listof path-string?)</li><li>tar-gzip is missing from the doc but is available in mzlib/tar (from which file/tar imports), so I export it as well, and it actually returns void? this time <br>
</li></ol>Also I didn't find a way to write optional parameters so I used case-lambda. Let me know if there is another way to write it. (What would be the way to write keyword parameter then?)<br><br>Thoughts?<br><br>
<font size="1"><span style="font-family: courier new,monospace;">#lang typed-scheme</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">;; tar.ss</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">;; typed-scheme wrapper on file/tar</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">;; yc 2009/2/25</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">;; licensed in LGPL, the same license as PLT Scheme itself.</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">;; basic type aliases.</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">(define-type-alias Path-String (U Path String))</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">(require/typed file/tar</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> ;; tar appears to return exact-nonenegative-integer? instead of void?</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> (tar (Path-String Path-String * -> Integer))</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> ;; tar->output appears to take (listof path) instead of (listof path-string?)</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ;; it also appears to return exact-nonenegative-integer?</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> (tar->output (case-lambda ((Listof Path) -> Integer)</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ((Listof Path) Output-Port -> Integer)))</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> ;; tar->gzip</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ;; missing from file/tar but available in mzlib/tar</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> ;; actually returns void? </span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> (tar-gzip (Path-String Path-String * -> Void))</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> )</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">(provide tar tar->output tar-gzip)</span><br style="font-family: courier new,monospace;"></font><br>