This is an Erlang solution to "The Santa Claus problem", % as discussed by Simon Peyton Jones (with a Haskell solution using % Software Transactional Memory) in "Beautiful code". % He quotes J.A.Trono "A new exercise in concurrency", SIGCSE 26:8-10, 1994.
A witness is a value that witnesses some sort of constraint on some list of type variables. This library provides support for simple witnesses, that constrain a type variable to a single type, and equality witnesses, that constrain two type variables to be the same type. The library also provides classes for representatives, which are values that represent types.
Thielecke: Contrasting exceptions and continuations A very useful paper, analyzing the semantic differences between continuations (a la callcc) and exceptions. The paper is a tour de force, and the details can be quite daunting. However, the basic results are well worth remembering: