packages feed

trial-0.0.0.0: trial.cabal

cabal-version:       2.4
name:                trial
version:             0.0.0.0
synopsis:            Trial Data Structure
description:
    The @Trial@ Data Structure is a @Either@-like structure that keeps
    events history inside. The data type allows to keep track of the
    @Fatality@ level of each such event entry (@Warning@ or @Error@).
    .
    @
    __data__ Trial e a
    \           │ │
    \           │ ╰╴Resulting type
    \           │
    \           ╰╴An error item type
    \
    \    -- | Unsuccessful case
    \    = Fiasco (DList (Fatality, e))
    \              │      │         │
    \              │      │         ╰╴One error item
    \              │      │
    \              │      ╰╴Level of damage
    \              │
    \              ╰╴Efficient list-container for error type items
    \
    \    -- | Successful case
    \    | Result (DList e) a
    \              │     │  │
    \              │     │  ╰╴Result
    \              │     │
    \              │     ╰╴One warning item
    \              │
    \              ╰╴Efficient list-container for warning type items
    @
    .
homepage:            https://github.com/kowainik/trial
bug-reports:         https://github.com/kowainik/trial/issues
license:             MPL-2.0
license-file:        LICENSE
author:              Veronika Romashkina, Dmitrii Kovanikov
maintainer:          Kowainik <xrom.xkov@gmail.com>
copyright:           2020 Kowainik
category:            Data Structure, Data
build-type:          Simple
extra-doc-files:     README.md
                     CHANGELOG.md
tested-with:         GHC == 8.6.5
                     GHC == 8.8.3
                     GHC == 8.10.1

source-repository head
  type:                git
  location:            https://github.com/kowainik/trial.git

common common-options
  build-depends:       base >= 4.12.0.0 && < 4.15

  ghc-options:         -Wall
                       -Wcompat
                       -Widentities
                       -Wincomplete-uni-patterns
                       -Wincomplete-record-updates
  if impl(ghc >= 8.0)
    ghc-options:       -Wredundant-constraints
  if impl(ghc >= 8.2)
    ghc-options:       -fhide-source-paths
  if impl(ghc >= 8.4)
    ghc-options:       -Wmissing-export-lists
                       -Wpartial-fields
  if impl(ghc >= 8.8)
    ghc-options:       -Wmissing-deriving-strategies
  if impl(ghc >= 8.10)
    ghc-options:       -Wunused-packages

  default-language:    Haskell2010
  default-extensions:  ConstraintKinds
                       DeriveGeneric
                       DerivingStrategies
                       GeneralizedNewtypeDeriving
                       InstanceSigs
                       KindSignatures
                       LambdaCase
                       OverloadedStrings
                       RecordWildCards
                       ScopedTypeVariables
                       StandaloneDeriving
                       TupleSections
                       TypeApplications
                       ViewPatterns

library
  import:              common-options
  hs-source-dirs:      src
  build-depends:       colourista ^>= 0.1.0.0
                     , dlist ^>= 0.8.0.8
  exposed-modules:     Trial

test-suite trial-test
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs
  other-modules:       Test.Trial.Gen
                       Test.Trial.Laws
                       Test.Trial.Property

  build-depends:       trial
                     , dlist
                     , hedgehog ^>= 1.0
                     , hspec ^>= 2.7
                     , hspec-hedgehog ^>= 0.0.1.1
                     , splitmix < 0.0.5

  ghc-options:         -threaded
                       -rtsopts
                       -with-rtsopts=-N

test-suite trial-doctest
  import:              common-options
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Doctest.hs
  build-depends:       doctest ^>= 0.16
  ghc-options:         -threaded