packages feed

recover-rtti-0.5.2: recover-rtti.cabal

cabal-version:      2.4
name:               recover-rtti
version:            0.5.2
synopsis:           Recover run-time type information from the GHC heap
description:        The main function in this package is 'classify', which looks
                    at the GHC heap to recover type information about arbitrary
                    values. This makes it possible for example to show any value
                    (function 'anythingToString') without having any @Show@
                    instance in scope, though there are other use cases as well.
                    For example, you could use it to define an 'anythingToJSON'
                    function.
bug-reports:        https://github.com/well-typed/recover-rtti/issues
license:            BSD-3-Clause
license-file:       LICENSE
author:             Edsko de Vries
maintainer:         edsko@well-typed.com
copyright:          Juspay Technologies Pvt Ltd, Well-Typed LLP
category:           Debugging
extra-doc-files:    README.md
                    CHANGELOG.md
tested-with:        GHC==9.2.8
                    GHC==9.4.8
                    GHC==9.6.7
                    GHC==9.8.4
                    GHC==9.10.2
                    GHC==9.12.2

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

common lang
  build-depends:    base >= 4.16 && < 4.22
  default-language: GHC2021

  ghc-options:
      -Wall
      -Wprepositive-qualified-module
      -Wredundant-constraints
      -Wunused-packages

  default-extensions:
      DataKinds
      DerivingVia
      DerivingStrategies
      LambdaCase
      PatternSynonyms
      QuantifiedConstraints
      RecordWildCards
      TypeFamilies
      UndecidableInstances
      UndecidableSuperClasses
      ViewPatterns

library
  import:         lang
  hs-source-dirs: src

  exposed-modules:
      Debug.RecoverRTTI
      Debug.RecoverRTTI.Classify
      Debug.RecoverRTTI.ClosureTree

  other-modules:
      Debug.RecoverRTTI.CheckSame
      Debug.RecoverRTTI.Classifier
      Debug.RecoverRTTI.Constraint
      Debug.RecoverRTTI.Debugging
      Debug.RecoverRTTI.FlatClosure
      Debug.RecoverRTTI.Modules
      Debug.RecoverRTTI.Nat
      Debug.RecoverRTTI.Reclassify
      Debug.RecoverRTTI.Tuple
      Debug.RecoverRTTI.Tuple.Recursive
      Debug.RecoverRTTI.Tuple.Size
      Debug.RecoverRTTI.Util
      Debug.RecoverRTTI.Wrappers

  build-depends:
      -- bundled libraries
    , bytestring >= 0.11 && < 0.13
    , containers >= 0.6  && < 0.8
    , ghc-heap   >= 9.2  && < 9.13
    , mtl        >= 2.2  && < 2.4
    , stm        >= 2.5  && < 2.6
    , text       >= 1.2  && < 2.2

  build-depends:
    , aeson      >= 1.4  && < 2.3
    , sop-core   >= 0.5  && < 0.6
    , vector     >= 0.12 && < 0.14
    , primitive  >= 0.7  && < 0.10

      -- 0.2.12 introduces Data.HashMap.Internal.Array
    , unordered-containers >= 0.2.12 && < 0.3

  other-extensions:
      CPP

test-suite test-recover-rtti
  import: lang
  type:             exitcode-stdio-1.0
  hs-source-dirs:   tests
  main-is:          RecoverRttiTests.hs
  build-depends:    recover-rtti

  other-modules:
      Test.RecoverRTTI.Classifier.Arbitrary
      Test.RecoverRTTI.Classifier.Equality
      Test.RecoverRTTI.Classifier.Size
      Test.RecoverRTTI.Classify
      Test.RecoverRTTI.ConcreteClassifier
      Test.RecoverRTTI.Globals
      Test.RecoverRTTI.Prim
      Test.RecoverRTTI.QuickCheck.DepGen
      Test.RecoverRTTI.QuickCheck.Sized
      Test.RecoverRTTI.Sanity
      Test.RecoverRTTI.Show
      Test.RecoverRTTI.Staged
      Test.RecoverRTTI.UserDefined

  build-depends:
      -- inherited dependencies
    , aeson
    , bytestring
    , containers
    , mtl
    , primitive
    , sop-core
    , stm
    , text
    , unordered-containers
    , vector

  build-depends:
      -- new dependencies
    , QuickCheck       >= 2.15 && < 2.17
    , tasty            >= 1.5  && < 1.6
    , tasty-hunit      >= 0.10 && < 0.11
    , tasty-quickcheck >= 0.11 && < 0.12

  other-extensions:
      CPP
      MagicHash
      UnboxedTuples
      OverloadedStrings