# \[ANN\] tasty-cache 0.1.0.0

**URL:** https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993
**Category:** Announcements
**Created:** [April 28, 2026, 1:57pm UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993 "2026-04-28T13:57:38Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![silky](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/silky/32/3555_2.png) [@silky](https://discourse.haskell.org/u/silky)
#### Post date: [April 28, 2026, 1:57pm UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993/1 "2026-04-28T13:57:39Z")

</div>

Hello everyone,

I had AI build me a Nix-inspired, HIE-based, test caching tool:

- GitHub - [GitHub - silky/tasty-cache: Cache tests based on their source dependency tree; only re-run when source meaningfully changed. · GitHub](https://github.com/silky/tasty-cache)
- Hackage - [tasty-cache: Tasty ingredient that skips unchanged tests using GHC HIE files](https://hackage.haskell.org/package/tasty-cache)

It works by using the HIE files to compute a hash of all the depenencies of a test function, and then decides whether to re-run on that basis.

I tried to explore all the potential failure cases; and of course there’s some ways to disable it entirely.

Very curious to know if you find it useful; and please do report any issues!

---

<div class="post-metadata">

### Author: ![Bodigrim](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/bodigrim/32/1457_2.png) [@Bodigrim](https://discourse.haskell.org/u/Bodigrim)
#### Post date: [April 28, 2026, 7:05pm UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993/2 "2026-04-28T19:05:51Z")

</div>

Thanks for the AI transparency disclosure.

But how does it work in the presence of overloaded identifiers? I assume you must somehow resolve which instances are used in each particular test case and track changes to respective definitions. Is it possible to do it just through HIE files, without type checking?

Say, you have `factorial :: Num a => a -> a` and want to test that `factorial @Foo 5 = 120`. The definition of `factorial` has not changed and same for the type declaration of `Foo`. But how do you check that `instance Num Foo` remains the same? We don’t even know upfront where it is defined.

---

<div class="post-metadata">

### Author: ![silky](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/silky/32/3555_2.png) [@silky](https://discourse.haskell.org/u/silky)
#### Post date: [April 29, 2026, 2:57am UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993/3 "2026-04-29T02:57:09Z")

</div>

Very nice question @Bodigrim ; thank you; I hadn’t thought about that.

Happily, the AI found a plan that seems to do the trick 🙂 - [tasty-cache/CHANGELOG.md at main · silky/tasty-cache · GitHub](https://github.com/silky/tasty-cache/blob/main/CHANGELOG.md)

Released now as 0.1.1.0 !

---

<div class="post-metadata">

### Author: ![hasufell](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/hasufell/32/1250_2.png) [@hasufell](https://discourse.haskell.org/u/hasufell)
#### Post date: [April 29, 2026, 5:32am UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993/4 "2026-04-29T05:32:08Z")

</div>

I’m curious why your commits don’t show claude as co-author.

Would you mind adding an empty `AGENTS.md`? That makes it easier for tools to detect the vibecode status.

---

<div class="post-metadata">

### Author: ![silky](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/silky/32/3555_2.png) [@silky](https://discourse.haskell.org/u/silky)
#### Post date: [April 29, 2026, 12:50pm UTC](https://discourse.haskell.org/t/ann-tasty-cache-0-1-0-0/13993/5 "2026-04-29T12:50:00Z")

</div>

I’ve made it quite clear it was made with AI; you can just blacklist it in your tool if you wish.
