packages feed

algebraic-path-0.1.0.1: algebraic-path.cabal

cabal-version: 3.0
name: algebraic-path
version: 0.1.0.1
synopsis: Flexible and simple path manipulation library
description:
  Path library that:

  - Models paths in canonical form
  - Makes paths monoidally composable and provides a rich algebra
  - Avoids type-level wizardry
  - Doesn't target Windows thus maintaining focus and avoiding quirks

category: Path, FilePath, Filesystem
author: Nikita Volkov <nikita.y.volkov@mail.ru>
maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
copyright: (c) 2023 Nikita Volkov
license: MIT
license-file: LICENSE

source-repository head
  type: git
  location: https://github.com/nikita-volkov/algebraic-path

common base
  default-language: Haskell2010
  default-extensions:
    ApplicativeDo
    Arrows
    BangPatterns
    BinaryLiterals
    BlockArguments
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveGeneric
    DeriveLift
    DeriveTraversable
    DerivingVia
    DuplicateRecordFields
    EmptyCase
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    HexFloatLiterals
    ImportQualifiedPost
    LambdaCase
    LiberalTypeSynonyms
    MultiParamTypeClasses
    MultiWayIf
    NoImplicitPrelude
    NoMonomorphismRestriction
    NumericUnderscores
    OverloadedStrings
    ParallelListComp
    PatternGuards
    PatternSynonyms
    QuasiQuotes
    RankNTypes
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    StrictData
    TemplateHaskell
    TupleSections
    TypeApplications
    TypeFamilies
    TypeOperators
    UndecidableInstances
    ViewPatterns

common executable
  import: base
  ghc-options:
    -O2
    -threaded
    -with-rtsopts=-N
    -rtsopts
    -funbox-strict-fields

common test
  import: base
  ghc-options:
    -threaded
    -with-rtsopts=-N

library
  import: base
  hs-source-dirs: src/library
  exposed-modules: AlgebraicPath
  other-modules:
  build-depends:
    QuickCheck >=2.14 && <3,
    algebraic-path:ast,
    algebraic-path:util,
    attoparsec >=0.13 && <0.15,
    base >=4.14 && <5,
    text-builder ^>=1.0,

library ast
  import: base
  hs-source-dirs: src/ast
  exposed-modules:
    AlgebraicPath.Ast.Component
    AlgebraicPath.Ast.Name
    AlgebraicPath.Ast.Path

  other-modules:
    AlgebraicPath.Ast.Name.NameSegment

  build-depends:
    QuickCheck >=2.14 && <3,
    algebraic-path:util,
    attoparsec >=0.13 && <0.15,
    base >=4.14 && <5,
    natural-sort ^>=0.1.2,
    text >=1.2 && <3,
    text-builder ^>=1.0,

library util
  import: base
  hs-source-dirs: src/util
  exposed-modules:
    AlgebraicPath.Util.List
    AlgebraicPath.Util.MonadPlus
    AlgebraicPath.Util.Prelude

  build-depends:
    QuickCheck >=2.14 && <3,
    base >=4.14 && <5,
    hashable >=1.3 && <2,
    text >=1.2 && <3,

test-suite tests
  import: test
  type: exitcode-stdio-1.0
  hs-source-dirs: src/tests
  main-is: Main.hs
  build-depends:
    algebraic-path,
    hspec ^>=2.11.12,
    quickcheck-classes ^>=0.6.5.0,
    rerebase >=1.21 && <2,