English
Related papers

Related papers: Coherence of Type Class Resolution

200 papers

Type classes are a popular tool for implementing generic algorithms and data structures without loss of efficiency, bridging the gap between parametric and ad-hoc polymorphism. Since their initial development in Haskell, they now feature…

Programming Languages · Computer Science 2025-03-03 Dimi Racordon , Eugene Flesselle , Cao Nguyen Pham

Type classes are one of Haskell's most popular features and extend its type system with ad-hoc polymorphism. Since their conception, there were useful features that could not be offered because of the desire to offer two correctness…

Programming Languages · Computer Science 2018-07-31 Thomas Winant , Dominique Devriese

We 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…

Programming Languages · Computer Science 2017-06-30 J. Garrett Morris , Richard Eisenberg

We consider the application of Constraint Handling Rules (CHR) for the specification of type inference systems, such as that used by Haskell. Confluence of CHR guarantees that the answer provided by type inference is correct and consistent.…

Programming Languages · Computer Science 2020-02-19 Gregory J. Duck , Remy Haemmerle , Martin Sulzmann

This dissertation introduces executable refinement types, which refine structural types by semi-decidable predicates, and establishes their metatheory and accompanying implementation techniques. These results are useful for undecidable type…

Programming Languages · Computer Science 2014-03-14 Kenneth Knowles

Providing natural language explanations for recommendations is particularly useful from the perspective of a non-expert user. Although several methods for providing such explanations have recently been proposed, we argue that an important…

Computation and Language · Computer Science 2025-03-19 Jakub Raczyński , Mateusz Lango , Jerzy Stefanowski

To be usable in practice, interactive theorem provers need to provide convenient and efficient means of writing expressions, definitions, and proofs. This involves inferring information that is often left implicit in an ordinary…

Logic in Computer Science · Computer Science 2015-12-18 Leonardo de Moura , Jeremy Avigad , Soonho Kong , Cody Roux

Horn clauses and first-order resolution are commonly used to implement type classes in Haskell. Several corecursive extensions to type class resolution have recently been proposed, with the goal of allowing (co)recursive dictionary…

Programming Languages · Computer Science 2016-12-09 František Farka , Ekaterina Komendantskaya , Kevin Hammond

Coherent discourse is distinguished from a mere collection of utterances by the satisfaction of a diverse set of constraints, for example choice of expression, logical relation between denoted events, and implicit compatibility with…

Computation and Language · Computer Science 2021-05-11 Anne Beyer , Sharid Loáiciga , David Schlangen

In automata theory, while determinisation provides a standard route to solving many common problems in automata theory, some weak forms of nondeterminism can be dealt with in some problems without costly determinisation. For example, the…

Formal Languages and Automata Theory · Computer Science 2026-05-29 Thomas A. Henzinger , Keya Prakash , K. S. Thejaswini

Ability to use definitions occurring in the code directly in equational reasoning is one of the key strengths of functional programming. This is impossible in the case of Haskell type class methods unless a particular instance type is…

Programming Languages · Computer Science 2020-07-02 Härmel Nestra

Though many safety-critical software systems use floating point to represent real-world input and output, programmers usually have idealized versions in mind that compute with real numbers. Significant deviations from the ideal can cause…

Logic in Computer Science · Computer Science 2018-05-02 Benjamin Sherman , Luke Sciarappa , Adam Chlipala , Michael Carbin

Type-level programming is an increasingly popular way to obtain additional type safety. Unfortunately, it remains a second-class citizen in the majority of industrially-used programming languages. We propose a new dependently-typed system…

Programming Languages · Computer Science 2020-11-17 Georg Stefan Schmid , Olivier Blanvillain , Jad Hamza , Viktor Kunčak

Type soundness is an important property of modern programming languages. In this paper we explore the idea that "well-typed languages are sound": the idea that the appropriate typing discipline over language specifications guarantees that…

Programming Languages · Computer Science 2016-11-17 Matteo Cimini , Dale Miller , Jeremy G. Siek

We propose abstract compilation for precise static type analysis of object-oriented languages based on coinductive logic programming. Source code is translated to a logic program, then type-checking and inference problems amount to queries…

Programming Languages · Computer Science 2017-09-15 Luca Franceschini , Davide Ancona , Ekaterina Komendantskaya

Confluence of a nondeterministic program ensures a functional input-output relation, freeing the programmer from considering the actual scheduling strategy, and allowing optimized and perhaps parallel implementations. The more general…

Programming Languages · Computer Science 2018-09-14 Henning Christiansen , Maja Kirkeby

This thesis investigates effectful declarative programming with an emphasis on non-determinism as an effect. On the one hand, we are interested in developing applications using non-determinism as underlying implementation idea. We discuss…

Programming Languages · Computer Science 2020-06-03 Sandra Dylus

We provide a constraint based computational model of linear precedence as employed in the HPSG grammar formalism. An extended feature logic which adds a wide range of constraints involving precedence is described. A sound, complete and…

cmp-lg · Computer Science 2016-08-31 Suresh Manandhar

Multi-stage programming is a proven technique that provides predictable performance characteristics by controlling code generation. We propose a core semantics for Typed Template Haskell, an extension of Haskell that supports multi staged…

Programming Languages · Computer Science 2021-12-08 Matthew Pickering , Andres Löh , Nicolas Wu

Bidirectional typechecking, in which terms either synthesize a type or are checked against a known type, has become popular for its applicability to a variety of type systems, its error reporting, and its ease of implementation. Following…

Programming Languages · Computer Science 2020-09-22 Jana Dunfield , Neelakantan R. Krishnaswami
‹ Prev 1 2 3 10 Next ›