We hope to have a friendly document explaining everything new Darcs developers or Darcs library users need to know about type witnesses.
TODO: what problem are we trying to solve by using witnesses?
- What values do the wX etc type variables get instantiated to?
- Phantom types
- Existential types
- Type families
Here are little fragments from our past that point in that direction. We need a proper comprehensive document in the long run.
- Seal and FlippedSeal
- “when you seal a patch, you agree to lose information about it”
- Phantom Types, Existentials and Controlling Unification
- see thread parent for the context, and an example of why you’d want something like IsEq