Static Capabilities

Lightweight Static Capabilities by Oleg Kiselyov and Chung-chieh Shan shows how to use a Hindley-Milner type system in order to do static reasoning about some safety properties in languages such as ML and Haskell.