ML modules and Haskell type classes have proven to be highly effective tools for program structuring. Modules emphasize explicit configuration of program components and the use of...
Manuel M. T. Chakravarty, Gabriele Keller, Simon L...
Subtyping rules can be fairly complex for union types, due to interactions with other types, such as function types. Furthermore, these interactions turn out to depend on the calc...
We introduce a lightweight approach for reasoning about programs involving imperative data structures using the proof assistant Isabelle/HOL. It is based on shallow embedding of pr...
Lukas Bulwahn, Alexander Krauss, Florian Haftmann,...
Object-Gofer is a small, practical extension of the functional programming language Gofer incorporating the following ideas from the object-oriented community: objects and toplevel...
Interfaces as defined in the JAVA programming language can enhance both decoupling and comprehensibility of large code bases. Several researchers have pointed out this key role of...