tilapia icon indicating copy to clipboard operation
tilapia copied to clipboard

Improving all Haskell's programmer interfaces

Tilapia – improving all Haskell's programmer interfaces

Tilapia is an effort to improve all the interfaces between Haskell and the programmers who use it. For example, it aims to improve

  • the user experience that Haskell tools provide to the programmer (tools including GHC, Cabal, Stack, IDEs)
  • the documentation of tools and libraries, by
    • providing or improving working examples
    • providing or improving tutorials
    • reporting or correcting out-of-date or misleading documentation
  • the APIs of Haskell libraries so they are easier to use or to learn

Additionally, Tilapia will serve as a focal point for people not familiar with the Haskell ecosystem so that they can raise difficulties and ask questions about the experience they have had with Haskell tooling and libraries. They may not otherwise know where to share their perspective.

Tilapia will help existing maintainers with tasks they may not have time for, and bring to their attention helpful suggestions they may not otherwise have considered. One sign that Tilapia is adding value to the community will be that existing maintainers feel that their job becomes easier: our aim is that they feel pleased that their project is being discussed or addressed by Tilapia, not threatened.

What is Tilapia not? We are not going to add new functionality to any tools or libraries. Authors and maintainers already do a great job of that. We are not going to teach Haskell. There are good resources for that already.

Examples

One good example of what Tilapia intends to do, and which in fact partially inspired the Tilapia project, is William Yao's experience report of using Reanimate. He explained why he found the library hard to use, wrote a tutorial and submitted a documentation PR, all of which contribute to improve the experience of future users of the library.

Useful links