Higher-order languages that encourage currying are implemented using one of two basic evaluation models: push/enter or eval/apply. Implementors use their intuition and qualitative...
We define the base polytope B(P, g) of a partially ordered set P and a supermodular function g on the ideals ofP as the convex hull of the incidence vectors of all linear extensio...
We propose an extension of Haskell's type class system with bstractions in the type language. Type inference for our extension relies on a novel constrained unification proce...
Programmers often want to transform the source or binary representations of their programs (e.g., to optimize, add dynamic safety checks, or add profile gathering code). Unfortun...
Dynamic detection of likely invariants is a program analysis that generalizes over observed values to hypothesize program properties. The reported program properties are a set of ...