MissingH-1.4.3.0: Large utility library

Copyright | Copyright (C) 2004-2011 John Goerzen
License | BSD-3-Clause
Stability | provisional
Portability | portable
Safe Haskell | Trustworthy
Language | Haskell2010

System.IO.HVFS

Contents

- Implementation Classes / Types
- Re-exported types from other modules
- Orphan instances

Description

Haskell Virtual FS -- generic support for real or virtual filesystem in Haskell

Copyright (c) 2004-2005 John Goerzen, jgoerzen@complete.org

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.

Each `HVFS` function takes a `HVFS` "handle" (`HVFS` instance) as its first parameter. If you wish to operate on the standard system filesystem, you can just use `SystemFS`.

The MissingH.HVFS.IO.InstanceHelpers module contains some code to help you make your own HVFS instances.

The `HVFSOpenable` class works together with the System.IO.HVIO 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.

Synopsis

- class Show a => HVFS a where
  - vGetCurrentDirectory :: a -> IO FilePath
  - vSetCurrentDirectory :: a -> FilePath -> IO ()
  - vGetDirectoryContents :: a -> FilePath -> IO [FilePath]
  - vDoesFileExist :: a -> FilePath -> IO Bool
  - vDoesDirectoryExist :: a -> FilePath -> IO Bool
  - vDoesExist :: a -> FilePath -> IO Bool
  - vCreateDirectory :: a -> FilePath -> IO ()
  - vRemoveDirectory :: a -> FilePath -> IO ()
  - vRenameDirectory :: a -> FilePath -> FilePath -> IO ()
  - vRemoveFile :: a -> FilePath -> IO ()
  - vRenameFile :: a -> FilePath -> FilePath -> IO ()
  - vGetFileStatus :: a -> FilePath -> IO HVFSStatEncap
  - vGetSymbolicLinkStatus :: a -> FilePath -> IO HVFSStatEncap
  - vGetModificationTime :: a -> FilePath -> IO ClockTime
  - vRaiseError :: a -> IOErrorType -> String -> Maybe FilePath -> IO c
  - vCreateSymbolicLink :: a -> FilePath -> FilePath -> IO ()
  - vReadSymbolicLink :: a -> FilePath -> IO FilePath
  - vCreateLink :: a -> FilePath -> FilePath -> IO ()
- class Show a => HVFSStat a where
  - vDeviceID :: a -> DeviceID
  - vFileID :: a -> FileID
  - vFileMode :: a -> FileMode
  - vLinkCount :: a -> LinkCount
  - vFileOwner :: a -> UserID
  - vFileGroup :: a -> GroupID
  - vSpecialDeviceID :: a -> DeviceID
  - vFileSize :: a -> FileOffset
  - vAccessTime :: a -> EpochTime
  - vModificationTime :: a -> EpochTime
  - vStatusChangeTime :: a -> EpochTime
  - vIsBlockDevice :: a -> Bool
  - vIsCharacterDevice :: a -> Bool
  - vIsNamedPipe :: a -> Bool
  - vIsRegularFile :: a -> Bool
  - vIsDirectory :: a -> Bool
  - vIsSymbolicLink :: a -> Bool
  - vIsSocket :: a -> Bool
- class HVFS a => HVFSOpenable a where
  - vOpen :: a -> FilePath -> IOMode -> IO HVFSOpenEncap
  - vReadFile :: a -> FilePath -> IO String
  - vWriteFile :: a -> FilePath -> String -> IO ()
  - vOpenBinaryFile :: a -> FilePath -> IOMode -> IO HVFSOpenEncap
- data HVFSOpenEncap = forall a.HVIO a => HVFSOpenEncap a
- data HVFSStatEncap = forall a.HVFSStat a => HVFSStatEncap a
- withStat :: forall b. HVFSStatEncap -> (forall a. HVFSStat a => a -> b) -> b
- withOpen :: forall b. HVFSOpenEncap -> (forall a. HVIO a => a -> b) -> b
- data SystemFS = SystemFS
- type FilePath = String
- type DeviceID = CDev
- type FileID = CIno
- type FileMode = CMode
- type LinkCount = CNlink
- type UserID = CUid
- type GroupID = CGid
- type FileOffset = COff
- type EpochTime = CTime
- data IOMode

# Implementation Classes / Types

class Show a => HVFS a where Source #

The main HVFS class.

Default implementations of these functions are provided:

- `vGetModificationTime` -- implemented in terms of `vGetFileStatus`
- `vRaiseError`
- `vDoesFileExist` -- implemented in terms of `vGetFileStatus`
- `vDoesDirectoryExist` -- implemented in terms of `vGetFileStatus`
- `vDoesExist` -- implemented in terms of `vGetSymbolicLinkStatus`
- `vGetSymbolicLinkStatus` -- set to call `vGetFileStatus`.

Default implementations of all other functions will generate an isIllegalOperation error, since they are assumed to be un-implemented.

You should always provide at least a `vGetFileStatus` call, and almost certainly several of the others.

Most of these functions correspond to functions in System.Directory or System.Posix.Files. Please see detailed documentation on them there.

Minimal complete definition

vGetFileStatus

Methods

vGetCurrentDirectory :: a -> IO FilePath Source #

vSetCurrentDirectory :: a -> FilePath -> IO () Source #

vGetDirectoryContents :: a -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: a -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: a -> FilePath -> IO Bool Source #

vDoesExist :: a -> FilePath -> IO Bool Source #

True if the file exists, regardless of what type it is. This is even True if the given path is a broken symlink.

vCreateDirectory :: a -> FilePath -> IO () Source #

vRemoveDirectory :: a -> FilePath -> IO () Source #

vRenameDirectory :: a -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: a -> FilePath -> IO () Source #

vRenameFile :: a -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: a -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: a -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: a -> FilePath -> IO ClockTime Source #

vRaiseError :: a -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

Raise an error relating to actions on this class.

vCreateSymbolicLink :: a -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: a -> FilePath -> IO FilePath Source #

vCreateLink :: a -> FilePath -> FilePath -> IO () Source #

#### Instances

Instances details

HVFS SystemFS Source # |

Instance details

Defined in System.IO.HVFS

Methods

vGetCurrentDirectory :: SystemFS -> IO FilePath Source #

vSetCurrentDirectory :: SystemFS -> FilePath -> IO () Source #

vGetDirectoryContents :: SystemFS -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: SystemFS -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: SystemFS -> FilePath -> IO Bool Source #

vDoesExist :: SystemFS -> FilePath -> IO Bool Source #

vCreateDirectory :: SystemFS -> FilePath -> IO () Source #

vRemoveDirectory :: SystemFS -> FilePath -> IO () Source #

vRenameDirectory :: SystemFS -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: SystemFS -> FilePath -> IO () Source #

vRenameFile :: SystemFS -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: SystemFS -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: SystemFS -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: SystemFS -> FilePath -> IO ClockTime Source #

vRaiseError :: SystemFS -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

vCreateSymbolicLink :: SystemFS -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: SystemFS -> FilePath -> IO FilePath Source #

vCreateLink :: SystemFS -> FilePath -> FilePath -> IO () Source #

HVFS MemoryVFS Source # |

Instance details

Defined in System.IO.HVFS.InstanceHelpers

Methods

vGetCurrentDirectory :: MemoryVFS -> IO FilePath Source #

vSetCurrentDirectory :: MemoryVFS -> FilePath -> IO () Source #

vGetDirectoryContents :: MemoryVFS -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: MemoryVFS -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: MemoryVFS -> FilePath -> IO Bool Source #

vDoesExist :: MemoryVFS -> FilePath -> IO Bool Source #

vCreateDirectory :: MemoryVFS -> FilePath -> IO () Source #

vRemoveDirectory :: MemoryVFS -> FilePath -> IO () Source #

vRenameDirectory :: MemoryVFS -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: MemoryVFS -> FilePath -> IO () Source #

vRenameFile :: MemoryVFS -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: MemoryVFS -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: MemoryVFS -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: MemoryVFS -> FilePath -> IO ClockTime Source #

vRaiseError :: MemoryVFS -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

vCreateSymbolicLink :: MemoryVFS -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: MemoryVFS -> FilePath -> IO FilePath Source #

vCreateLink :: MemoryVFS -> FilePath -> FilePath -> IO () Source #

HVFS a => HVFS (HVFSChroot a) Source # |

Instance details

Defined in System.IO.HVFS.Combinators

Methods

vGetCurrentDirectory :: HVFSChroot a -> IO FilePath Source #

vSetCurrentDirectory :: HVFSChroot a -> FilePath -> IO () Source #

vGetDirectoryContents :: HVFSChroot a -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: HVFSChroot a -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: HVFSChroot a -> FilePath -> IO Bool Source #

vDoesExist :: HVFSChroot a -> FilePath -> IO Bool Source #

vCreateDirectory :: HVFSChroot a -> FilePath -> IO () Source #

vRemoveDirectory :: HVFSChroot a -> FilePath -> IO () Source #

vRenameDirectory :: HVFSChroot a -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: HVFSChroot a -> FilePath -> IO () Source #

vRenameFile :: HVFSChroot a -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: HVFSChroot a -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: HVFSChroot a -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: HVFSChroot a -> FilePath -> IO ClockTime Source #

vRaiseError :: HVFSChroot a -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

vCreateSymbolicLink :: HVFSChroot a -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: HVFSChroot a -> FilePath -> IO FilePath Source #

vCreateLink :: HVFSChroot a -> FilePath -> FilePath -> IO () Source #

HVFS a => HVFS (HVFSReadOnly a) Source # |

Instance details

Defined in System.IO.HVFS.Combinators

Methods

vGetCurrentDirectory :: HVFSReadOnly a -> IO FilePath Source #

vSetCurrentDirectory :: HVFSReadOnly a -> FilePath -> IO () Source #

vGetDirectoryContents :: HVFSReadOnly a -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: HVFSReadOnly a -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: HVFSReadOnly a -> FilePath -> IO Bool Source #

vDoesExist :: HVFSReadOnly a -> FilePath -> IO Bool Source #

vCreateDirectory :: HVFSReadOnly a -> FilePath -> IO () Source #

vRemoveDirectory :: HVFSReadOnly a -> FilePath -> IO () Source #

vRenameDirectory :: HVFSReadOnly a -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: HVFSReadOnly a -> FilePath -> IO () Source #

vRenameFile :: HVFSReadOnly a -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: HVFSReadOnly a -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: HVFSReadOnly a -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: HVFSReadOnly a -> FilePath -> IO ClockTime Source #

vRaiseError :: HVFSReadOnly a -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

vCreateSymbolicLink :: HVFSReadOnly a -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: HVFSReadOnly a -> FilePath -> IO FilePath Source #

vCreateLink :: HVFSReadOnly a -> FilePath -> FilePath -> IO () Source #

class Show a => HVFSStat a where Source #

Evaluating types of files and information about them.

This corresponds to the System.Posix.Types.FileStatus type, and indeed, that is one instance of this class.

Inplementators must, at minimum, implement `vIsDirectory` and `vIsRegularFile`.

Default implementations of everything else are provided, returning reasonable values.

A default implementation of this is not currently present on Windows.

Minimal complete definition

vIsRegularFile, vIsDirectory

Methods

vDeviceID :: a -> DeviceID Source #

vFileID :: a -> FileID Source #

vFileMode :: a -> FileMode Source #

Refers to file permissions, NOT the st_mode field from stat(2)

vLinkCount :: a -> LinkCount Source #

vFileOwner :: a -> UserID Source #

vFileGroup :: a -> GroupID Source #

vSpecialDeviceID :: a -> DeviceID Source #

vFileSize :: a -> FileOffset Source #

vAccessTime :: a -> EpochTime Source #

vModificationTime :: a -> EpochTime Source #

vStatusChangeTime :: a -> EpochTime Source #

vIsBlockDevice :: a -> Bool Source #

vIsCharacterDevice :: a -> Bool Source #

vIsNamedPipe :: a -> Bool Source #

vIsRegularFile :: a -> Bool Source #

vIsDirectory :: a -> Bool Source #

vIsSymbolicLink :: a -> Bool Source #

vIsSocket :: a -> Bool Source #

#### Instances

Instances details

HVFSStat FileStatus Source # |

Instance details

Defined in System.IO.HVFS

Methods

vDeviceID :: FileStatus -> DeviceID Source #

vFileID :: FileStatus -> FileID Source #

vFileMode :: FileStatus -> FileMode Source #

vLinkCount :: FileStatus -> LinkCount Source #

vFileOwner :: FileStatus -> UserID Source #

vFileGroup :: FileStatus -> GroupID Source #

vSpecialDeviceID :: FileStatus -> DeviceID Source #

vFileSize :: FileStatus -> FileOffset Source #

vAccessTime :: FileStatus -> EpochTime Source #

vModificationTime :: FileStatus -> EpochTime Source #

vStatusChangeTime :: FileStatus -> EpochTime Source #

vIsBlockDevice :: FileStatus -> Bool Source #

vIsCharacterDevice :: FileStatus -> Bool Source #

vIsNamedPipe :: FileStatus -> Bool Source #

vIsRegularFile :: FileStatus -> Bool Source #

vIsDirectory :: FileStatus -> Bool Source #

vIsSymbolicLink :: FileStatus -> Bool Source #

vIsSocket :: FileStatus -> Bool Source #

HVFSStat SimpleStat Source # |

Instance details

Defined in System.IO.HVFS.InstanceHelpers

Methods

vDeviceID :: SimpleStat -> DeviceID Source #

vFileID :: SimpleStat -> FileID Source #

vFileMode :: SimpleStat -> FileMode Source #

vLinkCount :: SimpleStat -> LinkCount Source #

vFileOwner :: SimpleStat -> UserID Source #

vFileGroup :: SimpleStat -> GroupID Source #

vSpecialDeviceID :: SimpleStat -> DeviceID Source #

vFileSize :: SimpleStat -> FileOffset Source #

vAccessTime :: SimpleStat -> EpochTime Source #

vModificationTime :: SimpleStat -> EpochTime Source #

vStatusChangeTime :: SimpleStat -> EpochTime Source #

vIsBlockDevice :: SimpleStat -> Bool Source #

vIsCharacterDevice :: SimpleStat -> Bool Source #

vIsNamedPipe :: SimpleStat -> Bool Source #

vIsRegularFile :: SimpleStat -> Bool Source #

vIsDirectory :: SimpleStat -> Bool Source #

vIsSymbolicLink :: SimpleStat -> Bool Source #

vIsSocket :: SimpleStat -> Bool Source #

class HVFS a => HVFSOpenable a where Source #

Types that can open a HVIO object should be instances of this class. You need only implement `vOpen`.

Minimal complete definition

vOpen

Methods

vOpen :: a -> FilePath -> IOMode -> IO HVFSOpenEncap Source #

vReadFile :: a -> FilePath -> IO String Source #

vWriteFile :: a -> FilePath -> String -> IO () Source #

vOpenBinaryFile :: a -> FilePath -> IOMode -> IO HVFSOpenEncap Source #

#### Instances

Instances details

HVFSOpenable SystemFS Source # |
Instance details Defined in System.IO.HVFS Methods vOpen :: SystemFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source # vReadFile :: SystemFS -> FilePath -> IO String Source # vWriteFile :: SystemFS -> FilePath -> String -> IO () Source # vOpenBinaryFile :: SystemFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source #
HVFSOpenable MemoryVFS Source # |
Instance details Defined in System.IO.HVFS.InstanceHelpers Methods vOpen :: MemoryVFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source # vReadFile :: MemoryVFS -> FilePath -> IO String Source # vWriteFile :: MemoryVFS -> FilePath -> String -> IO () Source # vOpenBinaryFile :: MemoryVFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source #
HVFSOpenable a => HVFSOpenable (HVFSChroot a) Source # |
Instance details Defined in System.IO.HVFS.Combinators Methods vOpen :: HVFSChroot a -> FilePath -> IOMode -> IO HVFSOpenEncap Source # vReadFile :: HVFSChroot a -> FilePath -> IO String Source # vWriteFile :: HVFSChroot a -> FilePath -> String -> IO () Source # vOpenBinaryFile :: HVFSChroot a -> FilePath -> IOMode -> IO HVFSOpenEncap Source #
HVFSOpenable a => HVFSOpenable (HVFSReadOnly a) Source # |
Instance details Defined in System.IO.HVFS.Combinators Methods vOpen :: HVFSReadOnly a -> FilePath -> IOMode -> IO HVFSOpenEncap Source # vReadFile :: HVFSReadOnly a -> FilePath -> IO String Source # vWriteFile :: HVFSReadOnly a -> FilePath -> String -> IO () Source # vOpenBinaryFile :: HVFSReadOnly a -> FilePath -> IOMode -> IO HVFSOpenEncap Source #

data HVFSOpenEncap Source #

Similar to `HVFSStatEncap`, but for `vOpen` result.

Constructors

forall a.HVIO a => HVFSOpenEncap a |

data HVFSStatEncap Source #

Encapsulate a `HVFSStat` result. This is required due to Haskell typing restrictions. You can get at it with:

    case encap of
       HVFSStatEncap x -> -- now use x

Constructors

forall a.HVFSStat a => HVFSStatEncap a |

withStat :: forall b. HVFSStatEncap -> (forall a. HVFSStat a => a -> b) -> b Source #

Convenience function for working with stat -- takes a stat result and a function that uses it, and returns the result.

Here is an example from the HVFS source:

       vGetModificationTime fs fp =
          do s <- vGetFileStatus fs fp
             return $ epochToClockTime (withStat s vModificationTime)

See `epochToClockTime` for more information.

withOpen :: forall b. HVFSOpenEncap -> (forall a. HVIO a => a -> b) -> b Source #

Similar to `withStat`, but for the `vOpen` result.

data SystemFS Source #

Constructors

SystemFS |

#### Instances

Instances details

Eq SystemFS Source # |
Instance details Defined in System.IO.HVFS Methods (==) :: SystemFS -> SystemFS -> Bool (/=) :: SystemFS -> SystemFS -> Bool
Show SystemFS Source # |
Instance details Defined in System.IO.HVFS Methods showsPrec :: Int -> SystemFS -> ShowS show :: SystemFS -> String showList :: [SystemFS] -> ShowS
HVFSOpenable SystemFS Source # |
Instance details Defined in System.IO.HVFS Methods vOpen :: SystemFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source # vReadFile :: SystemFS -> FilePath -> IO String Source # vWriteFile :: SystemFS -> FilePath -> String -> IO () Source # vOpenBinaryFile :: SystemFS -> FilePath -> IOMode -> IO HVFSOpenEncap Source #
HVFS SystemFS Source # |

Instance details

Defined in System.IO.HVFS

Methods

vGetCurrentDirectory :: SystemFS -> IO FilePath Source #

vSetCurrentDirectory :: SystemFS -> FilePath -> IO () Source #

vGetDirectoryContents :: SystemFS -> FilePath -> IO [FilePath] Source #

vDoesFileExist :: SystemFS -> FilePath -> IO Bool Source #

vDoesDirectoryExist :: SystemFS -> FilePath -> IO Bool Source #

vDoesExist :: SystemFS -> FilePath -> IO Bool Source #

vCreateDirectory :: SystemFS -> FilePath -> IO () Source #

vRemoveDirectory :: SystemFS -> FilePath -> IO () Source #

vRenameDirectory :: SystemFS -> FilePath -> FilePath -> IO () Source #

vRemoveFile :: SystemFS -> FilePath -> IO () Source #

vRenameFile :: SystemFS -> FilePath -> FilePath -> IO () Source #

vGetFileStatus :: SystemFS -> FilePath -> IO HVFSStatEncap Source #

vGetSymbolicLinkStatus :: SystemFS -> FilePath -> IO HVFSStatEncap Source #

vGetModificationTime :: SystemFS -> FilePath -> IO ClockTime Source #

vRaiseError :: SystemFS -> IOErrorType -> String -> Maybe FilePath -> IO c Source #

vCreateSymbolicLink :: SystemFS -> FilePath -> FilePath -> IO () Source #

vReadSymbolicLink :: SystemFS -> FilePath -> IO FilePath Source #

vCreateLink :: SystemFS -> FilePath -> FilePath -> IO () Source #

# Re-exported types from other modules

type FilePath = String #

type DeviceID = CDev #

type FileID = CIno #

type FileMode = CMode #

type LinkCount = CNlink #

type UserID = CUid #

type GroupID = CGid #

type FileOffset = COff #

type EpochTime = CTime #

data IOMode #

#### Instances

Instances details

Enum IOMode |
Instance details Defined in GHC.IO.IOMode Methods succ :: IOMode -> IOMode pred :: IOMode -> IOMode toEnum :: Int -> IOMode fromEnum :: IOMode -> Int enumFrom :: IOMode -> [IOMode] enumFromThen :: IOMode -> IOMode -> [IOMode] enumFromTo :: IOMode -> IOMode -> [IOMode] enumFromThenTo :: IOMode -> IOMode -> IOMode -> [IOMode]
Eq IOMode |
Instance details Defined in GHC.IO.IOMode Methods (==) :: IOMode -> IOMode -> Bool (/=) :: IOMode -> IOMode -> Bool
Ord IOMode |
Instance details Defined in GHC.IO.IOMode Methods compare :: IOMode -> IOMode -> Ordering (<) :: IOMode -> IOMode -> Bool (<=) :: IOMode -> IOMode -> Bool (>) :: IOMode -> IOMode -> Bool (>=) :: IOMode -> IOMode -> Bool max :: IOMode -> IOMode -> IOMode min :: IOMode -> IOMode -> IOMode
Read IOMode |
Instance details Defined in GHC.IO.IOMode Methods readsPrec :: Int -> ReadS IOMode readList :: ReadS [IOMode] readPrec :: ReadPrec IOMode readListPrec :: ReadPrec [IOMode]
Show IOMode |
Instance details Defined in GHC.IO.IOMode Methods showsPrec :: Int -> IOMode -> ShowS show :: IOMode -> String showList :: [IOMode] -> ShowS
Ix IOMode |
Instance details Defined in GHC.IO.IOMode Methods range :: (IOMode, IOMode) -> [IOMode] index :: (IOMode, IOMode) -> IOMode -> Int unsafeIndex :: (IOMode, IOMode) -> IOMode -> Int inRange :: (IOMode, IOMode) -> IOMode -> Bool rangeSize :: (IOMode, IOMode) -> Int unsafeRangeSize :: (IOMode, IOMode) -> Int

# Orphan instances

Show FileStatus Source # |
Instance details Methods showsPrec :: Int -> FileStatus -> ShowS show :: FileStatus -> String showList :: [FileStatus] -> ShowS