Modern, statically typed programming languages provide various abstraction facilities at both the term- and type-level. Common abstraction mechanisms for types include parametric polymorphism -- a hallmark of functional languages -- and subtyping -- which ...
Industry and academia are continuously becoming more data-driven and data-intensive, relying on the analysis of a wide variety of datasets to gain insights. At the same time, data variety increases continuously across multiple axes. First, data comes in mu ...
Despite recent developments, neighborhood-scale performance assessment at the early-design phase is seldom carried out in practice, notably due to high computational complexity, time requirement, and perceived need for expert knowledge, ultimately limiting ...
A scalable programming language is one in which the same concepts can describe small as well as large parts. Towards this goal, Scala unifies concepts from object and module systems. In particular, objects can contain type members, which can be selected as ...
A semi-continuous formulation is introduced for finding bases that minimise the error in a specific output functional of a reduced-order model. The formulation is advantageous in that it can be used with arbitrary reference data and can be easily applied t ...
Algebraic data types and pattern matching are key features of functional programming languages. Exhaustivity checking of pattern matching is a safety belt that defends against unmatched exceptions at runtime and boosts type safety. However, the presence of ...