Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- ArticleSeptember 2020
Progress Report on the Scala Algebra System
AbstractThe new extension methods in Dotty (codename for Scala 3) allow us to solve a long-standing problem with type classes and coercion. It enables the realization of a new Scala adapter for the Java Algebra System (JAS). Our design is compared to the ...
- research-articleAugust 2019
Generic and flexible defaults for verified, law-abiding type-class instances
Haskell 2019: Proceedings of the 12th ACM SIGPLAN International Symposium on HaskellPages 15–29https://doi.org/10.1145/3331545.3342591Dependently typed languages allow programmers to state and prove type class laws by simply encoding the laws as class methods. But writing implementations of these methods frequently give way to large amounts of routine, boilerplate code, and depending ...
- research-articleJuly 2019
Asynchronous sessions with implicit functions and messages
Science of Computer Programming (SCPR), Volume 180, Issue CPages 36–70https://doi.org/10.1016/j.scico.2019.05.004AbstractSession types are a well-established approach to ensuring protocol conformance and the absence of communication errors such as deadlocks in message passing systems. Haskell introduced implicit parameters, Scala popularised this feature ...
Highlights- We introduce a new feature for concurrent programming languages: Implicit Messages.
- articleFebruary 2019
From Types to Sets by Local Type Definition in Higher-Order Logic
Journal of Automated Reasoning (JAUR), Volume 62, Issue 2Pages 237–260https://doi.org/10.1007/s10817-018-9464-6Types in higher-order logic (HOL) are naturally interpreted as nonempty sets. This intuition is reflected in the type definition rule for the HOL-based systems (including Isabelle/HOL), where a new type can be defined whenever a nonempty set is ...
- ArticleJanuary 2019
Classes of Arbitrary Kind
AbstractThe type class system in the Haskell Programming language provides a useful abstraction for a wide range of types, such as those that support comparison, serialization, ordering, between others. This system can be extended by the programmer by ...
Constrained type families
Proceedings of the ACM on Programming Languages (PACMPL), Volume 1, Issue ICFPArticle No.: 42, Pages 1–28https://doi.org/10.1145/3110286We present an approach to support partiality in type-level computation without compromising expressiveness or type safety. Existing frameworks for type-level computation either require totality or implicitly assume it. For example, type families in ...
- research-articleAugust 2015
Type families with class, type classes with family
Haskell '15: Proceedings of the 2015 ACM SIGPLAN Symposium on HaskellPages 129–140https://doi.org/10.1145/2804302.2804304Type classes and type families are key ingredients in Haskell programming. Type classes were introduced to deal with ad-hoc polymorphism, although with the introduction of functional dependencies, their use expanded to type-level programming. Type ...
Also Published in:
ACM SIGPLAN Notices: Volume 50 Issue 12 - articleMay 2011
A language for generic programming in the large
Science of Computer Programming (SCPR), Volume 76, Issue 5Pages 423–465https://doi.org/10.1016/j.scico.2008.09.009Generic programming is an effective methodology for developing reusable software libraries. Many programming languages provide generics and have features for describing interfaces, but none completely support the idioms used in generic programming. To ...
- articleJune 2009
Generic programming in 3D
Science of Computer Programming (SCPR), Volume 74, Issue 8Pages 590–628https://doi.org/10.1016/j.scico.2007.10.006Support for generic programming consists of three essential ingredients: support for overloaded functions, a run-time type representation, and a generic view on data. Different approaches to datatype-generic programming occupy different points in this ...
- articleMarch 2009
HasCasl: Integrated higher-order specification and program development
Theoretical Computer Science (TCSC), Volume 410, Issue 12-13Pages 1217–1260https://doi.org/10.1016/j.tcs.2008.11.020We lay out the design of HasCasl, a higher order extension of the algebraic specification language Casl that serves both as a wide-spectrum language for the rigorous specification and development of software, in particular but not exclusively in modern ...
- articleMarch 2006
Polymorphic typed defunctionalization and concretization
Higher-Order and Symbolic Computation (HOSC), Volume 19, Issue 1Pages 125–162https://doi.org/10.1007/s10990-006-8611-7Defunctionalization is a program transformation that eliminates functions as first-class values. We show that defunctionalization can be viewed as a type-preserving transformation of an extension of F with guarded algebraic data types into ...