BSD-3-Clause licensed by Sandy Maguire
Maintained by [email protected]
This version can be pinned in stack with:type-errors-,2082

Module documentation for


Build Status Hackage


View the gradients of adversity as the colors that paint your story, and the power of experience as what makes you a great teacher, creator, philosopher, entrepreneur, artist, and human. Everything works out eventually.

Jennifer Sodini


type-errors is a collection of tools for writing better, more ergonomic, type errors. Some of the more interesting features are the ability to observe stuckedness and phantomness, as well as perform substitutions over types.

For more information, check out the haddock documentation.


This project wouldn’t be possible without the help of two amazing people:

  • kcsongor who came up with the original technology behind this library.
  • Lysxia for articulating the approach to making IfStuck work for things of all kinds, and for helping me with the substitution machinery.


Changelog for type-errors (2019-07-03)

Breaking Changes

  • The UnlessPhantom and various Subst type families were broken in the presence of stuckness. This rendered them almost entirely unusable — so they now have a new implementation in terms of te.
  • Added te, a TemplateHaskell splice, which will perform symbolic substitutions over types. See haddock for the migration details.

Unreleased changes