Emily is an object-capability taming of OCaml.
How Emily Tamed the Caml - by Marc Stiegler, Mark Miller.
Abstract: How does one make a program breach resistant? One promising approach is to apply the Principle of Least Authority at object granularity. The E language has previously demonstrated that object-capability languages turn many of the security requirements for software into emergent properties of traditional object-oriented design and modularity enforcement. Emily is a subset of OCaml that uses a design rule verifier to enforce object-capability principles. It demonstrates how memory-safe languages can be transformed into breach-resistant object-capability systems with little loss of either expressivity or performance.