/usr/share/doc/libghc-tar-doc/html/Codec-Archive-Tar-Entry.html is in libghc-tar-doc 0.4.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 | <!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" /><title>Codec.Archive.Tar.Entry</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Codec-Archive-Tar-Entry.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Codec-Archive-Tar-Entry.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">tar-0.4.0.1: Reading, writing and manipulating ".tar" archive files.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Maintainer</th><td>duncan@community.haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Codec.Archive.Tar.Entry</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Tar entry and associated types
</a></li><li><a href="#g:2">Constructing simple entry values
</a></li><li><a href="#g:3">Standard file permissions
</a></li><li><a href="#g:4">Constructing entries from disk files
</a></li><li><a href="#g:5">TarPath type
</a></li><li><a href="#g:6">LinkTarget type
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Types and functions to manipulate tar entries.
</p><p>While the <a href="Codec-Archive-Tar.html">Codec.Archive.Tar</a> module provides only the simple high level
API, this module provides full access to the details of tar entries. This
lets you inspect all the meta-data, construct entries and handle error cases
more precisely.
</p><p>This module uses common names and so is designed to be imported qualified:
</p><pre> import qualified Codec.Archive.Tar as Tar
import qualified Codec.Archive.Tar.Entry as Tar
</pre></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span> <a href="#t:Entry">Entry</a> = <a href="#v:Entry">Entry</a> {<ul class="subs"><li><a href="#v:entryTarPath">entryTarPath</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></li><li><a href="#v:entryContent">entryContent</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a></li><li><a href="#v:entryPermissions">entryPermissions</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a></li><li><a href="#v:entryOwnership">entryOwnership</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Ownership">Ownership</a></li><li><a href="#v:entryTime">entryTime</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:EpochTime">EpochTime</a></li><li><a href="#v:entryFormat">entryFormat</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Format">Format</a></li></ul>}</li><li class="src short"><a href="#v:entryPath">entryPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:EntryContent">EntryContent</a> <ul class="subs"><li>= <a href="#v:NormalFile">NormalFile</a> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> !<a href="Codec-Archive-Tar-Entry.html#t:FileSize">FileSize</a> </li><li>| <a href="#v:Directory">Directory</a> </li><li>| <a href="#v:SymbolicLink">SymbolicLink</a> !<a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> </li><li>| <a href="#v:HardLink">HardLink</a> !<a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> </li><li>| <a href="#v:CharacterDevice">CharacterDevice</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMajor">DevMajor</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMinor">DevMinor</a> </li><li>| <a href="#v:BlockDevice">BlockDevice</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMajor">DevMajor</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMinor">DevMinor</a> </li><li>| <a href="#v:NamedPipe">NamedPipe</a> </li><li>| <a href="#v:OtherEntryType">OtherEntryType</a> !<a href="Codec-Archive-Tar-Entry.html#t:TypeCode">TypeCode</a> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> !<a href="Codec-Archive-Tar-Entry.html#t:FileSize">FileSize</a> </li></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Ownership">Ownership</a> = <a href="#v:Ownership">Ownership</a> {<ul class="subs"><li><a href="#v:ownerName">ownerName</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:groupName">groupName</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></li><li><a href="#v:ownerId">ownerId</a> :: !<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li><a href="#v:groupId">groupId</a> :: !<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:FileSize">FileSize</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int64">Int64</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Permissions">Permissions</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-Posix-Types.html#t:FileMode">FileMode</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:EpochTime">EpochTime</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int64">Int64</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DevMajor">DevMajor</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DevMinor">DevMinor</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TypeCode">TypeCode</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Format">Format</a> <ul class="subs"><li>= <a href="#v:V7Format">V7Format</a> </li><li>| <a href="#v:UstarFormat">UstarFormat</a> </li><li>| <a href="#v:GnuFormat">GnuFormat</a> </li></ul></li><li class="src short"><a href="#v:simpleEntry">simpleEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></li><li class="src short"><a href="#v:fileEntry">fileEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></li><li class="src short"><a href="#v:directoryEntry">directoryEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></li><li class="src short"><a href="#v:ordinaryFilePermissions">ordinaryFilePermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a></li><li class="src short"><a href="#v:executableFilePermissions">executableFilePermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a></li><li class="src short"><a href="#v:directoryPermissions">directoryPermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a></li><li class="src short"><a href="#v:packFileEntry">packFileEntry</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></li><li class="src short"><a href="#v:packDirectoryEntry">packDirectoryEntry</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></li><li class="src short"><a href="#v:getDirectoryContentsRecursive">getDirectoryContentsRecursive</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]</li><li class="src short"><span class="keyword">data</span> <a href="#t:TarPath">TarPath</a> </li><li class="src short"><a href="#v:toTarPath">toTarPath</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Either.html#t:Either">Either</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></li><li class="src short"><a href="#v:fromTarPath">fromTarPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:fromTarPathToPosixPath">fromTarPathToPosixPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:fromTarPathToWindowsPath">fromTarPathToWindowsPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:LinkTarget">LinkTarget</a> </li><li class="src short"><a href="#v:toLinkTarget">toLinkTarget</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></li><li class="src short"><a href="#v:fromLinkTarget">fromLinkTarget</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:fromLinkTargetToPosixPath">fromLinkTargetToPosixPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li><li class="src short"><a href="#v:fromLinkTargetToWindowsPath">fromLinkTargetToWindowsPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></li></ul></div><div id="interface"><h1 id="g:1">Tar entry and associated types
</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Entry" class="def">Entry</a> <a href="src/Codec-Archive-Tar-Types.html#Entry" class="link">Source</a></p><div class="doc"><p>Tar archive entry.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Entry" class="def">Entry</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:entryTarPath" class="def">entryTarPath</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></dt><dd class="doc"><p>The path of the file or directory within the archive. This is in a
tar-specific form. Use <code><a href="Codec-Archive-Tar-Entry.html#v:entryPath">entryPath</a></code> to get a native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p></dd><dt class="src"><a name="v:entryContent" class="def">entryContent</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a></dt><dd class="doc"><p>The real content of the entry. For <code><a href="Codec-Archive-Tar-Entry.html#v:NormalFile">NormalFile</a></code> this includes the
file data. An entry usually contains a <code><a href="Codec-Archive-Tar-Entry.html#v:NormalFile">NormalFile</a></code> or a <code><a href="Codec-Archive-Tar-Entry.html#v:Directory">Directory</a></code>.
</p></dd><dt class="src"><a name="v:entryPermissions" class="def">entryPermissions</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a></dt><dd class="doc"><p>File permissions (Unix style file mode).
</p></dd><dt class="src"><a name="v:entryOwnership" class="def">entryOwnership</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Ownership">Ownership</a></dt><dd class="doc"><p>The user and group to which this file belongs.
</p></dd><dt class="src"><a name="v:entryTime" class="def">entryTime</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:EpochTime">EpochTime</a></dt><dd class="doc"><p>The time the file was last modified.
</p></dd><dt class="src"><a name="v:entryFormat" class="def">entryFormat</a> :: !<a href="Codec-Archive-Tar-Entry.html#t:Format">Format</a></dt><dd class="doc"><p>The tar format the archive is using.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:entryPath" class="def">entryPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#entryPath" class="link">Source</a></p><div class="doc"><p>Native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code> of the file or directory within the archive.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:EntryContent" class="def">EntryContent</a> <a href="src/Codec-Archive-Tar-Types.html#EntryContent" class="link">Source</a></p><div class="doc"><p>The content of a tar archive entry, which depends on the type of entry.
</p><p>Portable archives should contain only <code><a href="Codec-Archive-Tar-Entry.html#v:NormalFile">NormalFile</a></code> and <code><a href="Codec-Archive-Tar-Entry.html#v:Directory">Directory</a></code>.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NormalFile" class="def">NormalFile</a> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> !<a href="Codec-Archive-Tar-Entry.html#t:FileSize">FileSize</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Directory" class="def">Directory</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SymbolicLink" class="def">SymbolicLink</a> !<a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:HardLink" class="def">HardLink</a> !<a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:CharacterDevice" class="def">CharacterDevice</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMajor">DevMajor</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMinor">DevMinor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:BlockDevice" class="def">BlockDevice</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMajor">DevMajor</a> !<a href="Codec-Archive-Tar-Entry.html#t:DevMinor">DevMinor</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:NamedPipe" class="def">NamedPipe</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:OtherEntryType" class="def">OtherEntryType</a> !<a href="Codec-Archive-Tar-Entry.html#t:TypeCode">TypeCode</a> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> !<a href="Codec-Archive-Tar-Entry.html#t:FileSize">FileSize</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:EntryContent" class="caption collapser" onclick="toggleSection('i:EntryContent')">Instances</p><div id="section.i:EntryContent" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Ownership" class="def">Ownership</a> <a href="src/Codec-Archive-Tar-Types.html#Ownership" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Ownership" class="def">Ownership</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:ownerName" class="def">ownerName</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The owner user name. Should be set to <code>""</code> if unknown.
</p></dd><dt class="src"><a name="v:groupName" class="def">groupName</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a></dt><dd class="doc"><p>The owner group name. Should be set to <code>""</code> if unknown.
</p></dd><dt class="src"><a name="v:ownerId" class="def">ownerId</a> :: !<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></dt><dd class="doc"><p>Numeric owner user id. Should be set to <code>0</code> if unknown.
</p></dd><dt class="src"><a name="v:groupId" class="def">groupId</a> :: !<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a></dt><dd class="doc"><p>Numeric owner group id. Should be set to <code>0</code> if unknown.
</p></dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Ownership" class="caption collapser" onclick="toggleSection('i:Ownership')">Instances</p><div id="section.i:Ownership" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Codec-Archive-Tar-Entry.html#t:Ownership">Ownership</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Codec-Archive-Tar-Entry.html#t:Ownership">Ownership</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FileSize" class="def">FileSize</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int64">Int64</a><a href="src/Codec-Archive-Tar-Types.html#FileSize" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Permissions" class="def">Permissions</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-Posix-Types.html#t:FileMode">FileMode</a><a href="src/Codec-Archive-Tar-Types.html#Permissions" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:EpochTime" class="def">EpochTime</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int64">Int64</a><a href="src/Codec-Archive-Tar-Types.html#EpochTime" class="link">Source</a></p><div class="doc"><p>The number of seconds since the UNIX epoch
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DevMajor" class="def">DevMajor</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Codec-Archive-Tar-Types.html#DevMajor" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DevMinor" class="def">DevMinor</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Int.html#t:Int">Int</a><a href="src/Codec-Archive-Tar-Types.html#DevMinor" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TypeCode" class="def">TypeCode</a> = <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Char.html#t:Char">Char</a><a href="src/Codec-Archive-Tar-Types.html#TypeCode" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Format" class="def">Format</a> <a href="src/Codec-Archive-Tar-Types.html#Format" class="link">Source</a></p><div class="doc"><p>There have been a number of extensions to the tar file format over the
years. They all share the basic entry fields and put more meta-data in
different extended headers.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:V7Format" class="def">V7Format</a></td><td class="doc"><p>This is the classic Unix V7 tar format. It does not support owner and
group names, just numeric Ids. It also does not support device numbers.
</p></td></tr><tr><td class="src"><a name="v:UstarFormat" class="def">UstarFormat</a></td><td class="doc"><p>The "USTAR" format is an extension of the classic V7 format. It was
later standardised by POSIX. It has some restrictions but is the most
portable format.
</p></td></tr><tr><td class="src"><a name="v:GnuFormat" class="def">GnuFormat</a></td><td class="doc"><p>The GNU tar implementation also extends the classic V7 format, though
in a slightly different way from the USTAR format. In general for new
archives the standard USTAR/POSIX should be used.
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Format" class="caption collapser" onclick="toggleSection('i:Format')">Instances</p><div id="section.i:Format" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Codec-Archive-Tar-Entry.html#t:Format">Format</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Codec-Archive-Tar-Entry.html#t:Format">Format</a></td><td class="doc empty"> </td></tr></table></div></div></div><h1 id="g:2">Constructing simple entry values
</h1><div class="top"><p class="src"><a name="v:simpleEntry" class="def">simpleEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:EntryContent">EntryContent</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a><a href="src/Codec-Archive-Tar-Types.html#simpleEntry" class="link">Source</a></p><div class="doc"><p>An <code><a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></code> with all default values except for the file name and type. It
uses the portable USTAR/POSIX format (see <code>UstarHeader</code>).
</p><p>You can use this as a basis and override specific fields, eg:
</p><pre> (emptyEntry name HardLink) { linkTarget = target }
</pre></div></div><div class="top"><p class="src"><a name="v:fileEntry" class="def">fileEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.0.2/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a><a href="src/Codec-Archive-Tar-Types.html#fileEntry" class="link">Source</a></p><div class="doc"><p>A tar <code><a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></code> for a file.
</p><p>Entry fields such as file permissions and ownership have default values.
</p><p>You can use this as a basis and override specific fields. For example if you
need an executable file you could use:
</p><pre> (fileEntry name content) { fileMode = executableFileMode }
</pre></div></div><div class="top"><p class="src"><a name="v:directoryEntry" class="def">directoryEntry</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a><a href="src/Codec-Archive-Tar-Types.html#directoryEntry" class="link">Source</a></p><div class="doc"><p>A tar <code><a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></code> for a directory.
</p><p>Entry fields such as file permissions and ownership have default values.
</p></div></div><h1 id="g:3">Standard file permissions
</h1><div class="doc"><p>For maximum portability when constructing archives use only these file
permissions.
</p></div><div class="top"><p class="src"><a name="v:ordinaryFilePermissions" class="def">ordinaryFilePermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a><a href="src/Codec-Archive-Tar-Types.html#ordinaryFilePermissions" class="link">Source</a></p><div class="doc"><p><code>rw-r--r--</code> for normal files
</p></div></div><div class="top"><p class="src"><a name="v:executableFilePermissions" class="def">executableFilePermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a><a href="src/Codec-Archive-Tar-Types.html#executableFilePermissions" class="link">Source</a></p><div class="doc"><p><code>rwxr-xr-x</code> for executable files
</p></div></div><div class="top"><p class="src"><a name="v:directoryPermissions" class="def">directoryPermissions</a> :: <a href="Codec-Archive-Tar-Entry.html#t:Permissions">Permissions</a><a href="src/Codec-Archive-Tar-Types.html#directoryPermissions" class="link">Source</a></p><div class="doc"><p><code>rwxr-xr-x</code> for directories
</p></div></div><h1 id="g:4">Constructing entries from disk files
</h1><div class="top"><p class="src"><a name="v:packFileEntry" class="def">packFileEntry</a><a href="src/Codec-Archive-Tar-Pack.html#packFileEntry" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Full path to find the file on the local disk
</p></td></tr><tr><td class="src">-> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></td><td class="doc"><p>Path to use for the tar Entry in the archive
</p></td></tr><tr><td class="src">-> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Construct a tar <code><a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></code> based on a local file.
</p><p>This sets the entry size, the data contained in the file and the file's
modification time. If the file is executable then that information is also
preserved. File ownership and detailed permissions are not preserved.
</p><ul><li> The file contents is read lazily.
</li></ul></div></div><div class="top"><p class="src"><a name="v:packDirectoryEntry" class="def">packDirectoryEntry</a><a href="src/Codec-Archive-Tar-Pack.html#packDirectoryEntry" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></td><td class="doc"><p>Full path to find the file on the local disk
</p></td></tr><tr><td class="src">-> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></td><td class="doc"><p>Path to use for the tar Entry in the archive
</p></td></tr><tr><td class="src">-> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> <a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Construct a tar <code><a href="Codec-Archive-Tar-Entry.html#t:Entry">Entry</a></code> based on a local directory (but not its contents).
</p><p>The only attribute of the directory that is used is its modification time.
Directory ownership and detailed permissions are not preserved.
</p></div></div><div class="top"><p class="src"><a name="v:getDirectoryContentsRecursive" class="def">getDirectoryContentsRecursive</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> [<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a>]<a href="src/Codec-Archive-Tar-Pack.html#getDirectoryContentsRecursive" class="link">Source</a></p><div class="doc"><p>This is a utility function, much like <code><a href="/usr/share/doc/ghc-doc/html/libraries/directory-1.2.0.1/System-Directory.html#v:getDirectoryContents">getDirectoryContents</a></code>. The
difference is that it includes the contents of subdirectories.
</p><p>The paths returned are all relative to the top directory. Directory paths
are distinguishable by having a trailing path separator
(see <code><a href="/usr/share/doc/ghc-doc/html/libraries/filepath-1.3.0.1/System-FilePath-Posix.html#v:hasTrailingPathSeparator">hasTrailingPathSeparator</a></code>).
</p><p>All directories are listed before the files that they contain. Amongst the
contents of a directory, subdirectories are listed after normal files. The
overall result is that files within a directory will be together in a single
contiguous group. This tends to improve file layout and IO performance when
creating or extracting tar archives.
</p><ul><li> This function returns results lazily. Subdirectories are not scanned
until the files entries in the parent directory have been consumed.
</li></ul></div></div><h1 id="g:5">TarPath type
</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:TarPath" class="def">TarPath</a> <a href="src/Codec-Archive-Tar-Types.html#TarPath" class="link">Source</a></p><div class="doc"><p>The classic tar format allowed just 100 characters for the file name. The
USTAR format extended this with an extra 155 characters, however it uses a
complex method of splitting the name between the two sections.
</p><p>Instead of just putting any overflow into the extended area, it uses the
extended area as a prefix. The aggravating insane bit however is that the
prefix (if any) must only contain a directory prefix. That is the split
between the two areas must be on a directory separator boundary. So there is
no simple calculation to work out if a file name is too long. Instead we
have to try to find a valid split that makes the name fit in the two areas.
</p><p>The rationale presumably was to make it a bit more compatible with old tar
programs that only understand the classic format. A classic tar would be
able to extract the file name and possibly some dir prefix, but not the
full dir prefix. So the files would end up in the wrong place, but that's
probably better than ending up with the wrong names too.
</p><p>So it's understandable but rather annoying.
</p><ul><li> Tar paths use Posix format (ie <code>'/'</code> directory separators), irrespective
of the local path conventions.
</li><li> The directory separator between the prefix and name is <em>not</em> stored.
</li></ul></div><div class="subs instances"><p id="control.i:TarPath" class="caption collapser" onclick="toggleSection('i:TarPath')">Instances</p><div id="section.i:TarPath" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:toTarPath" class="def">toTarPath</a><a href="src/Codec-Archive-Tar-Types.html#toTarPath" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></td><td class="doc"><p>Is the path for a directory? This is needed because for
directories a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> must always use a trailing <code>/</code>.
</p></td></tr><tr><td class="src">-> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></td><td class="doc empty"> </td></tr><tr><td class="src">-> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Either.html#t:Either">Either</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-String.html#t:String">String</a> <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Convert a native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code> to a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code>.
</p><p>The conversion may fail if the <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code> is too long. See <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> for a
description of the problem with splitting long <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>s.
</p></div></div><div class="top"><p class="src"><a name="v:fromTarPath" class="def">fromTarPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromTarPath" class="link">Source</a></p><div class="doc"><p>Convert a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> to a native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p><p>The native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code> will use the native directory separator but it is not
otherwise checked for validity or sanity. In particular:
</p><ul><li> The tar path may be invalid as a native path, eg the file name <code>"nul"</code>
is not valid on Windows.
</li><li> The tar path may be an absolute path or may contain <code>".."</code> components.
For security reasons this should not usually be allowed, but it is your
responsibility to check for these conditions (eg using <code>checkSecurity</code>).
</li></ul></div></div><div class="top"><p class="src"><a name="v:fromTarPathToPosixPath" class="def">fromTarPathToPosixPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromTarPathToPosixPath" class="link">Source</a></p><div class="doc"><p>Convert a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> to a Unix/Posix <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p><p>The difference compared to <code><a href="Codec-Archive-Tar-Entry.html#v:fromTarPath">fromTarPath</a></code> is that it always returns a Unix
style path irrespective of the current operating system.
</p><p>This is useful to check how a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> would be interpreted on a specific
operating system, eg to perform portability checks.
</p></div></div><div class="top"><p class="src"><a name="v:fromTarPathToWindowsPath" class="def">fromTarPathToWindowsPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromTarPathToWindowsPath" class="link">Source</a></p><div class="doc"><p>Convert a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> to a Windows <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p><p>The only difference compared to <code><a href="Codec-Archive-Tar-Entry.html#v:fromTarPath">fromTarPath</a></code> is that it always returns a
Windows style path irrespective of the current operating system.
</p><p>This is useful to check how a <code><a href="Codec-Archive-Tar-Entry.html#t:TarPath">TarPath</a></code> would be interpreted on a specific
operating system, eg to perform portability checks.
</p></div></div><h1 id="g:6">LinkTarget type
</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:LinkTarget" class="def">LinkTarget</a> <a href="src/Codec-Archive-Tar-Types.html#LinkTarget" class="link">Source</a></p><div class="doc"><p>The tar format allows just 100 ASCII characters for the <code><a href="Codec-Archive-Tar-Entry.html#v:SymbolicLink">SymbolicLink</a></code> and
<code><a href="Codec-Archive-Tar-Entry.html#v:HardLink">HardLink</a></code> entry types.
</p></div><div class="subs instances"><p id="control.i:LinkTarget" class="caption collapser" onclick="toggleSection('i:LinkTarget')">Instances</p><div id="section.i:LinkTarget" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Eq.html#t:Eq">Eq</a> <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Ord.html#t:Ord">Ord</a> <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:toLinkTarget" class="def">toLinkTarget</a> :: <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a><a href="src/Codec-Archive-Tar-Types.html#toLinkTarget" class="link">Source</a></p><div class="doc"><p>Convert a native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code> to a tar <code><a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></code>. This may fail if the
string is longer than 100 characters or if it contains non-portable
characters.
</p></div></div><div class="top"><p class="src"><a name="v:fromLinkTarget" class="def">fromLinkTarget</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromLinkTarget" class="link">Source</a></p><div class="doc"><p>Convert a tar <code><a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></code> to a native <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:fromLinkTargetToPosixPath" class="def">fromLinkTargetToPosixPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromLinkTargetToPosixPath" class="link">Source</a></p><div class="doc"><p>Convert a tar <code><a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></code> to a Unix/Posix <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:fromLinkTargetToWindowsPath" class="def">fromLinkTargetToWindowsPath</a> :: <a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a> -> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a><a href="src/Codec-Archive-Tar-Types.html#fromLinkTargetToWindowsPath" class="link">Source</a></p><div class="doc"><p>Convert a tar <code><a href="Codec-Archive-Tar-Entry.html#t:LinkTarget">LinkTarget</a></code> to a Windows <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:FilePath">FilePath</a></code>.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>
|