A proxy object is a surrogate or placeholder that controls access to another target object. Proxies can be used to support distributed programming, lazy or parallel evaluation, ac...
Polyvios Pratikakis, Jaime Spacco, Michael W. Hick...
We present a purely functional implementation of the computational differentiation tools — the well known numeric (i.e., not symbolic) techniques which permit one to compute poin...
Attribute grammars may be seen as a (rather specialised) lazy or demand-driven programming language. The "programs" in this language take text or parse trees as input an...
This paper describes the design and construction of a Haskell source-level debugger built into the GHCi interactive environment. We have taken a pragmatic approach: the debugger i...
A number of useful optimisations are enabled if we can determine when a value is accessed at most once. We extend the Hindley-Milner type system with uses, yielding a typeinferenc...