| CARVIEW |
recover-rtti: Recover run-time type information from the GHC heap
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.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Downloads
- recover-rtti-0.5.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.2.0.0, 0.2.1.0, 0.3.0.0, 0.4.0.0, 0.4.1.0, 0.4.2, 0.4.3, 0.5.0, 0.5.1, 0.5.2, 0.5.3 (info) |
|---|---|
| Change log | CHANGELOG.md |
| Dependencies | aeson (>=1.4 && <2.3), base (>=4.16 && <4.23), bytestring (>=0.11 && <0.13), containers (>=0.6 && <0.9), ghc-heap (>=9.2 && <9.15), mtl (>=2.2 && <2.4), primitive (>=0.7 && <0.10), sop-core (>=0.5 && <0.6), stm (>=2.5 && <2.6), text (>=1.2 && <2.2), unordered-containers (>=0.2.12 && <0.3), vector (>=0.12 && <0.14) [details] |
| 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, ghc ==9.14.1 |
| License | BSD-3-Clause |
| Copyright | Juspay Technologies Pvt Ltd, Well-Typed LLP |
| Author | Edsko de Vries |
| Maintainer | edsko@well-typed.com |
| Uploaded | by EdskoDeVries at 2026-01-07T12:18:06Z |
| Category | Debugging |
| Bug tracker | https://github.com/well-typed/recover-rtti/issues |
| Source repo | head: git clone https://github.com/well-typed/recover-rtti |
| Distributions | LTSHaskell:0.5.3, NixOS:0.5.1, Stackage:0.5.3 |
| Reverse Dependencies | 4 direct, 0 indirect [details] |
| Downloads | 1856 total (36 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2026-01-07 [all 1 reports] |
Readme for recover-rtti-0.5.3
[back to package description]recover-rtti
Recover run-time type information from the GHC heap. The key function in this library is
classify :: a -> Either Closure (Classifier a)
which recovers type information about values about which we know nothing (in
particular, no type class constraints). One example use case is the following
anythingToString function:
anythingToString :: a -> String
We test that the result of anythingToString is equal to the result of regular
show for a large range of data types (including user-defined ones that the
library is not aware of). There are also other possible use cases; for example,
it should be possible to define an anythingToJSON function.
Obviously there are limitations; the most important ones are:
UNPACKed fields are invisible to the library. This does not need to be a major issue though, when compiling code with-O0fields are not unpacked. (https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/exts/pragmas.html?highlight=unpack#nounpack-pragma)- Record field names are not known, and so records are shown just using the constructor.
There may be other gotchas as well; this library is primarily intended for debugging.