<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >System.IO.HVFS</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_System-IO-HVFS.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >MissingH-1.1.0.3: Large utility library</TD ><TD CLASS="topbut" ><A HREF="src/System-IO-HVFS.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >System.IO.HVFS</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >John Goerzen <jgoerzen@complete.org> </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Implementation Classes / Types </A ></DT ><DT ><A HREF="#2" >Re-exported types from other modules </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" ><P >Haskell Virtual FS -- generic support for real or virtual filesystem in Haskell </P ><P >Copyright (c) 2004-2005 John Goerzen, jgoerzen@complete.org </P ><P >The idea of this module is to provide virtualization of filesystem calls. In addition to the "real" system filesystem, you can also provide access to other, virtual, filesystems using the same set of calls. Examples of such virtual filesystems might include a remote FTP server, WebDAV server, a local Hashtable, a ConfigParser object, or any other data structure you can represent as a tree of named nodes containing strings. </P ><P >Each <TT ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A ></TT > function takes a <TT ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A ></TT > "handle" (<TT ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A ></TT > instance) as its first parameter. If you wish to operate on the standard system filesystem, you can just use <TT ><A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TT >. </P ><P >The <A HREF="MissingH-HVFS-IO-InstanceHelpers.html" >MissingH.HVFS.IO.InstanceHelpers</A > module contains some code to help you make your own HVFS instances. </P ><P >The <TT ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A ></TT > class works together with the <A HREF="System-IO-HVIO.html" >System.IO.HVIO</A > module to provide a complete virtual filesystem and I/O model that allows you to open up virtual filesystem files and act upon them in a manner similar to standard Handles. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="#t%3AHVFS" >HVFS</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AvGetCurrentDirectory" >vGetCurrentDirectory</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvSetCurrentDirectory" >vSetCurrentDirectory</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvGetDirectoryContents" >vGetDirectoryContents</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > [<A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A >]</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvDoesFileExist" >vDoesFileExist</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvDoesDirectoryExist" >vDoesDirectoryExist</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvDoesExist" >vDoesExist</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvCreateDirectory" >vCreateDirectory</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvRemoveDirectory" >vRemoveDirectory</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvRenameDirectory" >vRenameDirectory</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvRemoveFile" >vRemoveFile</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvRenameFile" >vRenameFile</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvGetFileStatus" >vGetFileStatus</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvGetSymbolicLinkStatus" >vGetSymbolicLinkStatus</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvGetModificationTime" >vGetModificationTime</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/haskell98-1.0.1.1/Time.html#t%3AClockTime" >ClockTime</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvRaiseError" >vRaiseError</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO-Error.html#t%3AIOErrorType" >IOErrorType</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > c</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvCreateSymbolicLink" >vCreateSymbolicLink</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvReadSymbolicLink" >vReadSymbolicLink</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvCreateLink" >vCreateLink</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A HREF="#t%3AHVFSStat" >HVFSStat</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AvDeviceID" >vDeviceID</A > :: a -> <A HREF="System-IO-HVFS.html#t%3ADeviceID" >DeviceID</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvFileID" >vFileID</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileID" >FileID</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvFileMode" >vFileMode</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileMode" >FileMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvLinkCount" >vLinkCount</A > :: a -> <A HREF="System-IO-HVFS.html#t%3ALinkCount" >LinkCount</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvFileOwner" >vFileOwner</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AUserID" >UserID</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvFileGroup" >vFileGroup</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AGroupID" >GroupID</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvSpecialDeviceID" >vSpecialDeviceID</A > :: a -> <A HREF="System-IO-HVFS.html#t%3ADeviceID" >DeviceID</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvFileSize" >vFileSize</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileOffset" >FileOffset</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvAccessTime" >vAccessTime</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvModificationTime" >vModificationTime</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvStatusChangeTime" >vStatusChangeTime</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsBlockDevice" >vIsBlockDevice</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsCharacterDevice" >vIsCharacterDevice</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsNamedPipe" >vIsNamedPipe</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsRegularFile" >vIsRegularFile</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsDirectory" >vIsDirectory</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsSymbolicLink" >vIsSymbolicLink</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvIsSocket" >vIsSocket</A > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > a => <A HREF="#t%3AHVFSOpenable" >HVFSOpenable</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AvOpen" >vOpen</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvReadFile" >vReadFile</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvWriteFile" >vWriteFile</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvOpenBinaryFile" >vOpenBinaryFile</A > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AHVFSOpenEncap" >HVFSOpenEncap</A > = <SPAN CLASS="keyword" >forall</SPAN > a . <A HREF="System-IO-HVIO.html#t%3AHVIO" >HVIO</A > a => <A HREF="#v%3AHVFSOpenEncap" >HVFSOpenEncap</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AHVFSStatEncap" >HVFSStatEncap</A > = <SPAN CLASS="keyword" >forall</SPAN > a . <A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > a => <A HREF="#v%3AHVFSStatEncap" >HVFSStatEncap</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithStat" >withStat</A > :: <SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A > -> (<SPAN CLASS="keyword" >forall</SPAN > a. <A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > a => a -> b) -> b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwithOpen" >withOpen</A > :: <SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A > -> (<SPAN CLASS="keyword" >forall</SPAN > a. <A HREF="System-IO-HVIO.html#t%3AHVIO" >HVIO</A > a => a -> b) -> b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASystemFS" >SystemFS</A > = <A HREF="#v%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AFilePath" >FilePath</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADeviceID" >DeviceID</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACDev" >CDev</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AFileID" >FileID</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACIno" >CIno</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AFileMode" >FileMode</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACMode" >CMode</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ALinkCount" >LinkCount</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACNlink" >CNlink</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AUserID" >UserID</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACUid" >CUid</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AGroupID" >GroupID</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACGid" >CGid</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AFileOffset" >FileOffset</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACOff" >COff</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AEpochTime" >EpochTime</A > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-C-Types.html#t%3ACTime" >CTime</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AIOMode" >IOMode</A > </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Implementation Classes / Types </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A NAME="t:HVFS" ><A NAME="t%3AHVFS" ></A ></A ><B >HVFS</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#HVFS" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >The main HVFS class. </P ><P >Default implementations of these functions are provided: </P ><UL ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvGetModificationTime" >vGetModificationTime</A ></TT > -- implemented in terms of <TT ><A HREF="System-IO-HVFS.html#v%3AvGetFileStatus" >vGetFileStatus</A ></TT > </LI ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvRaiseError" >vRaiseError</A ></TT > </LI ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvDoesFileExist" >vDoesFileExist</A ></TT > -- implemented in terms of <TT ><A HREF="System-IO-HVFS.html#v%3AvGetFileStatus" >vGetFileStatus</A ></TT > </LI ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvDoesDirectoryExist" >vDoesDirectoryExist</A ></TT > -- implemented in terms of <TT ><A HREF="System-IO-HVFS.html#v%3AvGetFileStatus" >vGetFileStatus</A ></TT > </LI ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvDoesExist" >vDoesExist</A ></TT > -- implemented in terms of <TT ><A HREF="System-IO-HVFS.html#v%3AvGetSymbolicLinkStatus" >vGetSymbolicLinkStatus</A ></TT > </LI ><LI > <TT ><A HREF="System-IO-HVFS.html#v%3AvGetSymbolicLinkStatus" >vGetSymbolicLinkStatus</A ></TT > -- set to call <TT ><A HREF="System-IO-HVFS.html#v%3AvGetFileStatus" >vGetFileStatus</A ></TT >. </LI ></UL ><P >Default implementations of all other functions will generate an isIllegalOperation error, since they are assumed to be un-implemented. </P ><P >You should always provide at least a <TT ><A HREF="System-IO-HVFS.html#v%3AvGetFileStatus" >vGetFileStatus</A ></TT > call, and almost certainly several of the others. </P ><P >Most of these functions correspond to functions in System.Directory or System.Posix.Files. Please see detailed documentation on them there. </P ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vGetCurrentDirectory" ><A NAME="v%3AvGetCurrentDirectory" ></A ></A ><B >vGetCurrentDirectory</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vGetCurrentDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vSetCurrentDirectory" ><A NAME="v%3AvSetCurrentDirectory" ></A ></A ><B >vSetCurrentDirectory</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vSetCurrentDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vGetDirectoryContents" ><A NAME="v%3AvGetDirectoryContents" ></A ></A ><B >vGetDirectoryContents</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > [<A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A >]</TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vGetDirectoryContents" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vDoesFileExist" ><A NAME="v%3AvDoesFileExist" ></A ></A ><B >vDoesFileExist</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vDoesFileExist" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vDoesDirectoryExist" ><A NAME="v%3AvDoesDirectoryExist" ></A ></A ><B >vDoesDirectoryExist</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vDoesDirectoryExist" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vDoesExist" ><A NAME="v%3AvDoesExist" ></A ></A ><B >vDoesExist</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vDoesExist" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >True if the file exists, regardless of what type it is. This is even True if the given path is a broken symlink. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vCreateDirectory" ><A NAME="v%3AvCreateDirectory" ></A ></A ><B >vCreateDirectory</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vCreateDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vRemoveDirectory" ><A NAME="v%3AvRemoveDirectory" ></A ></A ><B >vRemoveDirectory</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vRemoveDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vRenameDirectory" ><A NAME="v%3AvRenameDirectory" ></A ></A ><B >vRenameDirectory</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vRenameDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vRemoveFile" ><A NAME="v%3AvRemoveFile" ></A ></A ><B >vRemoveFile</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vRemoveFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vRenameFile" ><A NAME="v%3AvRenameFile" ></A ></A ><B >vRenameFile</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vRenameFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vGetFileStatus" ><A NAME="v%3AvGetFileStatus" ></A ></A ><B >vGetFileStatus</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vGetFileStatus" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vGetSymbolicLinkStatus" ><A NAME="v%3AvGetSymbolicLinkStatus" ></A ></A ><B >vGetSymbolicLinkStatus</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vGetSymbolicLinkStatus" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vGetModificationTime" ><A NAME="v%3AvGetModificationTime" ></A ></A ><B >vGetModificationTime</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/haskell98-1.0.1.1/Time.html#t%3AClockTime" >ClockTime</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vGetModificationTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vRaiseError" ><A NAME="v%3AvRaiseError" ></A ></A ><B >vRaiseError</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO-Error.html#t%3AIOErrorType" >IOErrorType</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > c</TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vRaiseError" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Raise an error relating to actions on this class. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vCreateSymbolicLink" ><A NAME="v%3AvCreateSymbolicLink" ></A ></A ><B >vCreateSymbolicLink</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vCreateSymbolicLink" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vReadSymbolicLink" ><A NAME="v%3AvReadSymbolicLink" ></A ></A ><B >vReadSymbolicLink</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vReadSymbolicLink" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vCreateLink" ><A NAME="v%3AvCreateLink" ></A ></A ><B >vCreateLink</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vCreateLink" >Source</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HVFS')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:HVFS" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > <A HREF="System-IO-HVFS-InstanceHelpers.html#t%3AMemoryVFS" >MemoryVFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > a => <A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > (<A HREF="System-IO-HVFS-Combinators.html#t%3AHVFSChroot" >HVFSChroot</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > a => <A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > (<A HREF="System-IO-HVFS-Combinators.html#t%3AHVFSReadOnly" >HVFSReadOnly</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > a => <A NAME="t:HVFSStat" ><A NAME="t%3AHVFSStat" ></A ></A ><B >HVFSStat</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#HVFSStat" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >Evaluating types of files and information about them. </P ><P >This corresponds to the System.Posix.Types.FileStatus type, and indeed, that is one instance of this class. </P ><P >Inplementators must, at minimum, implement <TT ><A HREF="System-IO-HVFS.html#v%3AvIsDirectory" >vIsDirectory</A ></TT > and <TT ><A HREF="System-IO-HVFS.html#v%3AvIsRegularFile" >vIsRegularFile</A ></TT >. </P ><P >Default implementations of everything else are provided, returning reasonable values. </P ><P >A default implementation of this is not currently present on Windows. </P ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vDeviceID" ><A NAME="v%3AvDeviceID" ></A ></A ><B >vDeviceID</B > :: a -> <A HREF="System-IO-HVFS.html#t%3ADeviceID" >DeviceID</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vDeviceID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vFileID" ><A NAME="v%3AvFileID" ></A ></A ><B >vFileID</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileID" >FileID</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vFileID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vFileMode" ><A NAME="v%3AvFileMode" ></A ></A ><B >vFileMode</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileMode" >FileMode</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vFileMode" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Refers to file permissions, NOT the st_mode field from stat(2) </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vLinkCount" ><A NAME="v%3AvLinkCount" ></A ></A ><B >vLinkCount</B > :: a -> <A HREF="System-IO-HVFS.html#t%3ALinkCount" >LinkCount</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vLinkCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vFileOwner" ><A NAME="v%3AvFileOwner" ></A ></A ><B >vFileOwner</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AUserID" >UserID</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vFileOwner" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vFileGroup" ><A NAME="v%3AvFileGroup" ></A ></A ><B >vFileGroup</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AGroupID" >GroupID</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vFileGroup" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vSpecialDeviceID" ><A NAME="v%3AvSpecialDeviceID" ></A ></A ><B >vSpecialDeviceID</B > :: a -> <A HREF="System-IO-HVFS.html#t%3ADeviceID" >DeviceID</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vSpecialDeviceID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vFileSize" ><A NAME="v%3AvFileSize" ></A ></A ><B >vFileSize</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFileOffset" >FileOffset</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vFileSize" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vAccessTime" ><A NAME="v%3AvAccessTime" ></A ></A ><B >vAccessTime</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vAccessTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vModificationTime" ><A NAME="v%3AvModificationTime" ></A ></A ><B >vModificationTime</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vModificationTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vStatusChangeTime" ><A NAME="v%3AvStatusChangeTime" ></A ></A ><B >vStatusChangeTime</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AEpochTime" >EpochTime</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vStatusChangeTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsBlockDevice" ><A NAME="v%3AvIsBlockDevice" ></A ></A ><B >vIsBlockDevice</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsBlockDevice" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsCharacterDevice" ><A NAME="v%3AvIsCharacterDevice" ></A ></A ><B >vIsCharacterDevice</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsCharacterDevice" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsNamedPipe" ><A NAME="v%3AvIsNamedPipe" ></A ></A ><B >vIsNamedPipe</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsNamedPipe" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsRegularFile" ><A NAME="v%3AvIsRegularFile" ></A ></A ><B >vIsRegularFile</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsRegularFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsDirectory" ><A NAME="v%3AvIsDirectory" ></A ></A ><B >vIsDirectory</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsDirectory" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsSymbolicLink" ><A NAME="v%3AvIsSymbolicLink" ></A ></A ><B >vIsSymbolicLink</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsSymbolicLink" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vIsSocket" ><A NAME="v%3AvIsSocket" ></A ></A ><B >vIsSocket</B > :: a -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vIsSocket" >Source</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HVFSStat')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:HVFSStat" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > <A HREF="/usr/share/doc/ghc/html/libraries/unix-2.4.0.2/System-Posix-Files.html#t%3AFileStatus" >FileStatus</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > <A HREF="System-IO-HVFS-InstanceHelpers.html#t%3ASimpleStat" >SimpleStat</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > a => <A NAME="t:HVFSOpenable" ><A NAME="t%3AHVFSOpenable" ></A ></A ><B >HVFSOpenable</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#HVFSOpenable" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Types that can open a HVIO object should be instances of this class. You need only implement <TT ><A HREF="System-IO-HVFS.html#v%3AvOpen" >vOpen</A ></TT >. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vOpen" ><A NAME="v%3AvOpen" ></A ></A ><B >vOpen</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vOpen" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vReadFile" ><A NAME="v%3AvReadFile" ></A ></A ><B >vReadFile</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vReadFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vWriteFile" ><A NAME="v%3AvWriteFile" ></A ></A ><B >vWriteFile</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vWriteFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:vOpenBinaryFile" ><A NAME="v%3AvOpenBinaryFile" ></A ></A ><B >vOpenBinaryFile</B > :: a -> <A HREF="System-IO-HVFS.html#t%3AFilePath" >FilePath</A > -> <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#vOpenBinaryFile" >Source</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HVFSOpenable')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:HVFSOpenable" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > <A HREF="System-IO-HVFS-InstanceHelpers.html#t%3AMemoryVFS" >MemoryVFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > a => <A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > (<A HREF="System-IO-HVFS-Combinators.html#t%3AHVFSChroot" >HVFSChroot</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > a => <A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > (<A HREF="System-IO-HVFS-Combinators.html#t%3AHVFSReadOnly" >HVFSReadOnly</A > a)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:HVFSOpenEncap" ><A NAME="t%3AHVFSOpenEncap" ></A ></A ><B >HVFSOpenEncap</B > </TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#HVFSOpenEncap" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Similar to <TT ><A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A ></TT >, but for <TT ><A HREF="System-IO-HVFS.html#v%3AvOpen" >vOpen</A ></TT > result. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><SPAN CLASS="keyword" >forall</SPAN > a . <A HREF="System-IO-HVIO.html#t%3AHVIO" >HVIO</A > a => <A NAME="v:HVFSOpenEncap" ><A NAME="v%3AHVFSOpenEncap" ></A ></A ><B >HVFSOpenEncap</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:HVFSStatEncap" ><A NAME="t%3AHVFSStatEncap" ></A ></A ><B >HVFSStatEncap</B > </TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#HVFSStatEncap" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >Encapsulate a <TT ><A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A ></TT > result. This is required due to Haskell typing restrictions. You can get at it with: </P ><PRE > case encap of HVFSStatEncap x -> -- now use x </PRE ></TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><SPAN CLASS="keyword" >forall</SPAN > a . <A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > a => <A NAME="v:HVFSStatEncap" ><A NAME="v%3AHVFSStatEncap" ></A ></A ><B >HVFSStatEncap</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:withStat" ><A NAME="v%3AwithStat" ></A ></A ><B >withStat</B > :: <SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="System-IO-HVFS.html#t%3AHVFSStatEncap" >HVFSStatEncap</A > -> (<SPAN CLASS="keyword" >forall</SPAN > a. <A HREF="System-IO-HVFS.html#t%3AHVFSStat" >HVFSStat</A > a => a -> b) -> b</TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#withStat" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" ><P >Convenience function for working with stat -- takes a stat result and a function that uses it, and returns the result. </P ><P >Here is an example from the HVFS source: </P ><PRE > vGetModificationTime fs fp = do s <- vGetFileStatus fs fp return $ epochToClockTime (withStat s vModificationTime) </PRE ><P >See <TT ><A HREF="System-Time-Utils.html#v%3AepochToClockTime" >epochToClockTime</A ></TT > for more information. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:withOpen" ><A NAME="v%3AwithOpen" ></A ></A ><B >withOpen</B > :: <SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="System-IO-HVFS.html#t%3AHVFSOpenEncap" >HVFSOpenEncap</A > -> (<SPAN CLASS="keyword" >forall</SPAN > a. <A HREF="System-IO-HVIO.html#t%3AHVIO" >HVIO</A > a => a -> b) -> b</TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#withOpen" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Similar to <TT ><A HREF="System-IO-HVFS.html#v%3AwithStat" >withStat</A ></TT >, but for the <TT ><A HREF="System-IO-HVFS.html#v%3AvOpen" >vOpen</A ></TT > result. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SystemFS" ><A NAME="t%3ASystemFS" ></A ></A ><B >SystemFS</B > </TD ><TD CLASS="declbut" ><A HREF="src/System-IO-HVFS.html#SystemFS" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:SystemFS" ><A NAME="v%3ASystemFS" ></A ></A ><B >SystemFS</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SystemFS')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:SystemFS" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFSOpenable" >HVFSOpenable</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="System-IO-HVFS.html#t%3AHVFS" >HVFS</A > <A HREF="System-IO-HVFS.html#t%3ASystemFS" >SystemFS</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Re-exported types from other modules </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:FilePath" ><A NAME="t%3AFilePath" ></A ></A ><B >FilePath</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TD ><TD CLASS="declbut" ><A HREF="src/GHC-IO.html#FilePath" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >File and directory names are values of type <TT ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A ></TT >, whose precise meaning is operating system dependent. Files can be opened, yielding a handle which can then be used to operate on the contents of that file. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DeviceID" ><A NAME="t%3ADeviceID" ></A ></A ><B >DeviceID</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACDev" >CDev</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#DeviceID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:FileID" ><A NAME="t%3AFileID" ></A ></A ><B >FileID</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACIno" >CIno</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#FileID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:FileMode" ><A NAME="t%3AFileMode" ></A ></A ><B >FileMode</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACMode" >CMode</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#FileMode" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:LinkCount" ><A NAME="t%3ALinkCount" ></A ></A ><B >LinkCount</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACNlink" >CNlink</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#LinkCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:UserID" ><A NAME="t%3AUserID" ></A ></A ><B >UserID</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACUid" >CUid</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#UserID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:GroupID" ><A NAME="t%3AGroupID" ></A ></A ><B >GroupID</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACGid" >CGid</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#GroupID" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:FileOffset" ><A NAME="t%3AFileOffset" ></A ></A ><B >FileOffset</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/System-Posix-Types.html#t%3ACOff" >COff</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#FileOffset" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:EpochTime" ><A NAME="t%3AEpochTime" ></A ></A ><B >EpochTime</B > = <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Foreign-C-Types.html#t%3ACTime" >CTime</A ></TD ><TD CLASS="declbut" ><A HREF="src/System-Posix-Types.html#EpochTime" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:IOMode" ><A NAME="t%3AIOMode" ></A ></A ><B >IOMode</B > </TD ><TD CLASS="declbut" ><A HREF="src/GHC-IO-IOMode.html#IOMode" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IOMode')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:IOMode" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AEnum" >Enum</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Read.html#t%3ARead" >Read</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Ix.html#t%3AIx" >Ix</A > <A HREF="System-IO-HVFS.html#t%3AIOMode" >IOMode</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >