packages feed

filepather-0.6.0: filepather.cabal

cabal-version:        2.4
name:                 filepather
version:              0.6.0
synopsis:             FilePath and Directory operations via Kleisli type aliases
description:
  Re-implementations of @System.FilePath@ and @System.Directory@ using
  @Kleisli@ type aliases from the
  <https://hackage.haskell.org/package/kleisli kleisli> package. Each function
  that takes a @FilePath@ as its subject argument is expressed as a @Kleisli@
  value, enabling composition via Functor, Applicative, Monad, and other type
  class instances. Platform-specific modules for Posix and Windows path
  semantics are also provided.
license:              BSD-3-Clause
license-file:         LICENCE
author:               Tony Morris <tmorris@tmorris.net>
maintainer:           Tony Morris <tmorris@tmorris.net>
category:             System
build-type:           Simple
extra-doc-files:      changelog.md
                    , README.md
homepage:             https://gitlab.com/tonymorris/filepather
bug-reports:          https://gitlab.com/tonymorris/filepather/-/issues
tested-with:          GHC == 9.6.7

flag dev
  description:        Enable development warnings (-Werror, -O2 for benchmarks)
  manual:             True
  default:            False

source-repository     head
  type:               git
  location:           https://gitlab.com/tonymorris/filepather.git

library
  exposed-modules:
                      System.FilePather
                    , System.FilePather.FilePather
                    , System.FilePather.FilePather.Posix
                    , System.FilePather.FilePather.Windows

  build-depends:        base >= 4.8 && < 6
                      , adjunctions >= 4.3 && < 5
                      , comonad >= 5 && < 6
                      , contravariant >= 1 && < 2
                      , deepseq >= 1.4 && < 2
                      , directory >= 1.3 && < 2
                      , distributive >= 0.5 && < 1
                      , filepath >= 1.4 && < 2
                      , kleisli >= 0.0.3 && < 1
                      , lens >= 4 && < 6
                      , mtl >= 2.2 && < 3
                      , selective >= 0.5 && < 1
                      , semigroupoids >= 5.2 && < 7
                      , time >= 1.9 && < 2
                      , transformers >= 0.5 && < 1

  hs-source-dirs:     src

  default-language:   Haskell2010

  ghc-options:        -Wall

  if flag(dev)
    ghc-options:      -Werror

benchmark bench
  type:               exitcode-stdio-1.0
  hs-source-dirs:     benchmarks
  main-is:            Main.hs
  build-depends:      base >= 4.8 && < 6
                    , deepseq >= 1.4 && < 2
                    , directory >= 1.3 && < 2
                    , filepath >= 1.4 && < 2
                    , kleisli >= 0.0.2 && < 1
                    , tasty-bench >= 0.3 && < 1
                    , filepather
  default-language:   Haskell2010
  ghc-options:        -Wall

  if flag(dev)
    ghc-options:      -Werror -O2

test-suite doctest
  type:               exitcode-stdio-1.0
  hs-source-dirs:     test
  main-is:            Main.hs
  build-depends:      base >= 4.8 && < 6
                    , process >= 1 && < 2
  build-tool-depends: doctest:doctest >= 0.22 && < 1
  default-language:   Haskell2010
  ghc-options:        -Wall