Talk about a dependency solver, which automatically schedules
iterative updates to a shared resource such that they do not conflict
with one another, and allows for parallelism where possible.
The shared resource is a table with multiple columns. Each update is
assumed to modify every row in the table, but only specific columns.
By requiring that clients need permissions to read/write to columns,
one can infer the correct ordering to schedule client requests on the
The approach of using rather fine-grained permissions also makes the
clients' intentions clearer than might otherwise be the case. This is
a common argument for static typing, and its merits are well exhibited
in Haskell programs.
- JJ Allen
- Gertraud Unterreitmeier (Gertraud)
- Joel Bernstein (joel)
- Ed Freyfogle
- Michael Jemmeson (michael)
- Neil Hemingway (neilh)
- Gabi Hack (gabimuc)
- Martin Evans (mjevans)
- Simon Williams