pathtype-0.8.1.4: pathtype.cabal
Cabal-Version: 2.2
Name: pathtype
Version: 0.8.1.4
Synopsis: Type-safe replacement for System.FilePath etc
Description:
This package provides type-safe access to filepath manipulations.
.
"System.Path" is designed to be used instead of "System.FilePath".
(It is intended to provide versions of functions from that
module which have equivalent functionality but are more typesafe).
"System.Path.Directory" is a companion module
providing a type-safe alternative to "System.Directory".
.
The heart of this package is the @'Path' ar fd@ abstract type
which represents file and directory paths.
The idea is that there are two type parameters -
the first should be 'Abs' or 'Rel', and the second 'File' or 'Dir'.
A number of type synonyms are provided for common types:
.
> type Path.AbsFile = Path Abs File
> type Path.RelFile = Path Rel File
> type Path.AbsDir = Path Abs Dir
> type Path.RelDir = Path Rel Dir
>
> type Path.Abs fd = Path Abs fd
> type Path.Rel fd = Path Rel fd
> type Path.File ar = Path ar File
> type Path.Dir ar = Path ar Dir
.
The type of the 'combine' (aka '</>') function gives the idea:
.
> (</>) :: Path.Dir ar -> Path.Rel fd -> Path ar fd
.
Together this enables us to give more meaningful types
to a lot of the functions,
and (hopefully) catch a bunch more errors at compile time.
.
For more details see the README.md file.
.
Related packages:
.
* @filepath@: The API of Neil Mitchell's "System.FilePath" module
(and properties satisfied) heavily influenced our package.
.
* @path@: Provides a wrapper type around 'FilePath'
and maps to functions from @filepath@ package.
This warrants consistency with @filepath@ functions.
Requires Template Haskell.
.
* @data-filepath@:
Requires 'Typeable' and Template Haskell.
.
* @hpath@:
@ByteString@-based path type with type parameter
for absolute and relative paths.
Stability: experimental
License: BSD-3-Clause
Category: System
License-file: LICENSE
Author: Ben Moseley, Ben Millwood, Henning Thielemann
Maintainer: haskell@henning-thielemann.de
HomePage: https://hub.darcs.net/thielema/pathtype/
Build-Type: Simple
Extra-Source-Files:
README.md
posix/System/Path/Host.hs
windows/System/Path/Host.hs
directory/pre-1.2/System/Path/ModificationTime.hs
directory/post-incl-1.2/System/Path/ModificationTime.hs
Extra-Doc-Files:
CHANGELOG
Source-Repository head
Type: darcs
Location: https://hub.darcs.net/thielema/pathtype/
Source-Repository this
Tag: 0.8.1.4
Type: darcs
Location: https://hub.darcs.net/thielema/pathtype/
Flag old-time
Description: Build with directory < 1.2 and old-time
Default: False
Library
Build-Depends:
utility-ht >=0.0.11 && <0.1,
doctest-exitcode-stdio >=0.0 && <0.1,
QuickCheck >=2.1.0.1 && <3,
deepseq >=1.3 && <1.7,
time >=1.0 && <2,
transformers >=0.3 && <0.7,
semigroups >=0.1 && <1,
tagged >=0.7 && <0.9,
base >=4.11 && <5
If flag(old-time)
Build-Depends: directory >= 1 && < 1.2, old-time >= 1.0 && < 2
Hs-Source-Dirs: directory/pre-1.2
Else
Build-Depends: directory >= 1.2 && < 2
Hs-Source-Dirs: directory/post-incl-1.2
Hs-Source-Dirs: src
If os(windows)
Hs-Source-Dirs: windows
Else
Hs-Source-Dirs: posix
Exposed-Modules:
System.Path
System.Path.Generic
System.Path.Directory
System.Path.IO
System.Path.Posix
System.Path.Windows
System.Path.Part
System.Path.PartClass
Other-Modules:
System.Path.Host
System.Path.Internal
System.Path.Internal.Part
System.Path.Internal.PartClass
System.Path.Internal.Component
System.Path.Internal.Separator
System.Path.Internal.System
System.Path.RegularExpression
System.Path.ModificationTime
GHC-Options:
-Wall -fwarn-tabs -fwarn-incomplete-record-updates -fwarn-unused-do-bind
Default-Language: Haskell98
Test-Suite test
Type: exitcode-stdio-1.0
Main-Is: Test.hs
Other-Modules:
Test.Posix.System.Path.Internal
Test.Windows.System.Path.Internal
Hs-Source-Dirs: test
Build-Depends:
pathtype,
QuickCheck,
doctest-exitcode-stdio,
doctest-lib >=0.1 && <0.1.2,
base
GHC-Options:
-Wall -fwarn-tabs -fwarn-incomplete-record-updates -fwarn-unused-do-bind
Default-Language: Haskell98