packages feed

debuggable-0.1.1: debuggable.cabal

cabal-version:   3.0
name:            debuggable
version:         0.1.1
synopsis:        Utilities for making your applications more debuggable.
description:     This package provides various utilities that can be used to
                 make your application easier to debug. Some of these tools are
                 intended for use during actual debugging only (similar to
                 @Debug.Trace@, for example). Other tools can be used as a
                 regular component in your application, to facilitate debugging
                 if and when necessary, but always present in your code.
license:         BSD-3-Clause
license-file:    LICENSE
author:          Edsko de Vries
maintainer:      edsko@well-typed.com
category:        Development
build-type:      Simple
extra-doc-files: CHANGELOG.md
tested-with:     GHC==8.10.7
               , GHC==9.2.8
               , GHC==9.4.8
               , GHC==9.6.7
               , GHC==9.8.4
               , GHC==9.10.3
               , GHC==9.12.4
               , GHC==9.14.1

source-repository head
  type:     git
  location: https://github.com/well-typed/debuggable

common lang
  default-language: Haskell2010
  build-depends:    base >= 4.14 && < 4.23

  default-extensions:
      BangPatterns
      DeriveAnyClass
      DeriveFunctor
      DeriveGeneric
      DerivingStrategies
      GeneralizedNewtypeDeriving
      ImportQualifiedPost
      LambdaCase
      NamedFieldPuns
      NumericUnderscores
      RankNTypes
      ScopedTypeVariables
      StandaloneDeriving
      TupleSections
      TypeApplications

  ghc-options:
      -Wall
      -Wredundant-constraints
      -Wprepositive-qualified-module
      -Widentities
      -Wmissing-export-lists

  if impl(ghc >= 9.0)
    ghc-options:
      -Wunused-packages

library
  import:         lang
  hs-source-dirs: src

  exposed-modules:
    Debug.NonInterleavedIO
    Debug.NonInterleavedIO.Scoped
    Debug.NonInterleavedIO.Trace
    Debug.Provenance
    Debug.Provenance.Callback
    Debug.Provenance.Scope

  other-modules:
    Debug.Provenance.Internal

  build-depends:
    , containers           >= 0.6   && < 0.9
    , exceptions           >= 0.9   && < 0.11
    , hashable             >= 1.4   && < 1.6
    , temporary            >= 1.2.1 && < 1.4
    , unordered-containers >= 0.2   && < 0.3

  other-extensions:
      ImplicitParams

test-suite demo
  import:         lang
  type:           exitcode-stdio-1.0
  main-is:        Demo.hs
  hs-source-dirs: demo

  ghc-options:
      -main-is Demo
      -rtsopts
      -threaded
      "-with-rtsopts=-N"

  other-modules:
      Cmdline
      Demo.Callback
      Demo.Callback.Profiling
      Demo.Callsite
      Demo.Invocation
      Demo.NIIO
      Demo.Scope

  build-depends:
      -- inherited dependencies
      debuggable

  build-depends:
      -- additional dependencies
    , async                >= 2.2  && < 2.3
    , optparse-applicative >= 0.18 && < 0.20